VSIX newtonsoft 不在包中 (VS>15.5) 抑制包

2024-03-16

我们有针对 vsix 项目的解决方案。直到 Visual Studio 15.4 版软件包都是使用 newtonsoft.json.dll 生成的,但是从该版本开始,newsoft 就被排除在软件包之外。

据我所知,这是因为“Microsoft.VsSDK.targets”位于“C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\VSSDK\Microsoft” .VsSDK.targets”有一个新的排除规则“”

我们的解决方案需要 NewtonSoft,如果我安装 VS >=15.5 的 vsix,由于 newtonsoft 不在包中,它无法在 %appdata%\microsoft\visualstudio\extensions 中请求此程序集。

我们所做的测试: 我从 VsSDK.targets 中删除了此排除项,它起作用了,因为 newtonsoft 已插入包中。

我已将程序集插入清单的资产中,但程序集未插入,因此失败。

我们更新了依赖项,以确保我们使用相同的版本 NewtonSoft 9.0.0。

我们如何解决这个问题,考虑到我们不想更改构建机器上的 SDK.targets,因为它在开发机器上会失败。

是否可以在资产中添加相对路径?如果是,怎么办?因为我已经尝试过,并且 newtonsoft 它没有插入。

https://social.msdn.microsoft.com/Forums/en-US/550ddfdc-027c-41ba-9b32-31e6391bc038/newtonsoftjsondll-not-included-in-vsix?forum=vsx https://social.msdn.microsoft.com/Forums/en-US/550ddfdc-027c-41ba-9b32-31e6391bc038/newtonsoftjsondll-not-included-in-vsix?forum=vsx

** UPDATE **

15.7.4版本仍然有这个问题

谢谢


将 Newtonsoft.Json.dll 作为链接项包含在扩展名 csproj 中。

<Content Include="..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll">
  <Link>Newtonsoft.Json.dll</Link>
  <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  <IncludeInVSIX>true</IncludeInVSIX>
</Content>

然后可以通过 VSIX 清单编辑器轻松添加该文件作为Microsoft.VisualStudio.Assembly。这应该会导致以下结果Asset在 .vsixmanifest 文件中定义。

<Asset d:Source="File" Path="Newtonsoft.Json.dll" Type="Microsoft.VisualStudio.Assembly" AssemblyName="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed" />

这远非完美的解决方案,因为此链接的项目不会跟随软件包升级,您必须自己管理。显然,完美的解决方案根本不需要这样做,并且 Newtonsoft.Json.dll 将像任何其他引用的程序集一样被包含在内。然而,这是我们发现的侵入性最小的解决方案,它允许我们控制 vsix 包中包含的 Newtonsoft.Json.dll 版本,并且不依赖于中找到的版本C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\PrivateAssemblies.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VSIX newtonsoft 不在包中 (VS>15.5) 抑制包 的相关文章

随机推荐

  • Android 中密码字段的正则表达式

    我如何验证EditText with Regex通过允许特定字符 我的条件是 密码规则 一个大写字母 一个号码 一个符号 任何可以接受的正常符号 我可以知道实现我的目标的正确方法是什么吗 试试这个可能有帮助 0 9 a z A Z S 4
  • ko.mapping 创建函数,扩展对象

    是否可以在映射过程中修改对象的模式 由于缺乏更好的术语 我想是的 我似乎无法让它发挥作用 我正在尝试这样的事情 var data itemOne someData itemTwo moreData var mapping newItem c
  • 结果显示为空

    我有一个Customer创建的 JSON 对象的值如下 Title Mr FirstName S LastName J Birthday 01 01 2011 Address Line1 Line1 Line2 Line2 City Cit
  • PHP 搜索数组列进行匹配

    我有一个如下所示的数组 其中有多个列 我想在第一列中搜索特定值 并返回匹配的行 这可能吗 例如 Array 0 gt Array id gt 1 column2 gt value2 column3 gt value3 column4 gt
  • 如何在react中使用axios删除单个项目

    我查看了很多文章和帖子 例如this https stackoverflow com questions 26806084 delete a comment react js但它在我的情况下不起作用 我只需要使用 axios 从我的应用程序
  • 在模板中使用导出关键字

    据我了解 可以使用 export 关键字 以便可以通过头文件公开模板类或函数签名 并抽象库文件中的实际实现 谁能提供一个实用的示例程序来说明如何做到这一点 使用时有什么缺点或需要注意的地方吗 编辑 基于答案的后续问题 正如答案中提到的 导出
  • 在 git bash 中找不到 wget 命令

    我已经在我的cmd中尝试过 pip install wget 它显示 gt pip install wget Requirement already satisfied wget in c users user python python3
  • angular2 添加两个数字视图侧

    我希望能够添加两个文本框中的数字 template h1 Adding inputBox Numbers h1 p Num1 p
  • 如何在测试中设置或模拟元素scrollHeight和元素clientHeight?

    我有一个 javascript 函数来检查 html 元素 el 是通过检查确定的大小 function isOverflow element string boolean const el document getElementById
  • PaintComponent 中的图像仅在调整窗口大小后才会显示

    我想用paintComponent Graphics g 使用 for 循环绘制一些图像 但是 JFrame 仅显示为白色屏幕 并且在我调整窗口大小后仅显示黑色背景和图像 import java awt import java awt ev
  • Robolectric:setupActivity() 中的 NullPointerException

    我尝试使用 Robolectric 来测试我的活动 但在尝试使用 Robolectric 设置活动时 我总是收到 NPE 我已按照指南进行操作robolectric org http robolectric org网站 这是我的代码 Con
  • 在GCP中,通过Cloudbuild如何确保仅触发文件中发生更改的那些步骤

    我的问题是 给定下面的 yaml 文件 如果我在 dir process cbd bu data 的任何文件中进行更改 Cloud Build 会在触发时串行运行所有步骤 这会导致时间的浪费 我希望只有该步骤在 cloudbuild 中运行
  • 如何通过bash判断一个线程是不是内核线程?

    如何通过以下方式识别一个线程是不是内核线程bash 我发现你可以通过以下方式识别内核线程ps 如果线程名称包含在 它是一个内核线程 但我认为这不是一个好的解决方案 对于这个问题的任何提示 我将不胜感激 您可以通过查看来确定特定任务是否是 k
  • Magento 中的多种货币

    我已经可以选择更改货币 但还有另一个问题 目前基础货币设置为欧元 这对我来说没问题 但客户可能想要更改它 如果我将基础货币更改为 RON 货币转换器下拉菜单就会消失 如何使用欧元以外的其他货币 但仍可以选择在店内更改货币 警告 magent
  • 我收到“org.apache.catalina.core.StandardContext startInternal SEVERE:错误listenerStart”。一些线索?

    我正在开发一种复杂的 hello world spring web 应用程序 因为它只有最基本的功能 一个控制器和一个视图 用 thymeleaf 制作 简单的数据库连接 oracle 和简单的电子邮件发送功能 现在 我尝试使用我的 IDE
  • 转换电子表格小数格式:以句点和逗号分隔的小数位

    在 OpenOffice Calc 中 可以更改标准美国之间的数字格式 小数点分隔符为句点 以及 SI 国际系统 格式 小数点分隔符为逗号 这可以通过在第一种情况下将语言设置为美国英语 在后一种情况下将语言设置为加拿大法语 在 格式 菜单中
  • C#中使用Threads和ListView的问题

    我有一个文本过滤器 在 TextChanged 事件中我以这种方式启动列表视图填充代码 ThreadPool QueueUserWorkItem new WaitCallback populate 然后在填充方法中我有这样的代码 listV
  • 如何在 Razor 中进行 Active Directory 身份验证 (cshtml)

    我正在用 Razor 做一个简单的网站 目前 我可以使用基于数据库的身份验证 如下所示 在 App Start html中 WebSecurity InitializeDatabaseConnection db connection use
  • ASP .Net 文本框 Textchanged 事件

    我有一个网页 我在页面中显示表格中的记录 比如说学生 我查询所有学生并将他们显示在网格中 我想使用文本框来过滤 datagridview 结果 例如 如果用户在文本框中键入 a 网格将仅显示姓名中包含 a 的学生 我想在编辑文本框的同时刷新
  • VSIX newtonsoft 不在包中 (VS>15.5) 抑制包

    我们有针对 vsix 项目的解决方案 直到 Visual Studio 15 4 版软件包都是使用 newtonsoft json dll 生成的 但是从该版本开始 newsoft 就被排除在软件包之外 据我所知 这是因为 Microsof