如何避免在 Visual Studio 2017 中加载 Microsoft.VisualStudio.Threading 时出现错误

2024-01-01

我已在仅针对 Visual Studio 2019 的版本中对 Visual Studio 包进行了更新日志。我开始使用 NuGet 包的一项更改微软VisualStudio SDK,版本 16.0.202 并删除了许多对 DLL 的单独引用。

现在,我已将最新版本的包移植回 Visual Studio 2017,并将多个 NuGet 包(例如 Microsoft.CodeAnalysis)降级到旧版本。

我已将 Microsoft.VisualStudio.SDK 降级到版本 15.9.3,这是最旧的可用版本。

最初,这似乎在多个系统上运行良好。但是,在一个系统上,我的包未加载,并且一条消息被写入活动日志,类似于

Could not load file or assembly 'Microsoft.VisualStudio.Threading, Version=15.8.0.0

(该消息实际上是德语,但这是等效的英语消息。)

我可以看到两种可能的解决方案:

[1]
扔掉 Microsoft.VisualStudio.SDK 并返回引用大量单独的 DLL。

我宁愿不这样做。

[2]
增加 Visual Studio 所需的最低版本号。

使用 Microsoft.VisualStudio.SDK 版本 15.9.3,是否必须将 Visual Studio 的最低版本设置为 15.9.3?

(这将是有限制的,但比不加载的包要好。)


增加所需的最低 VS 版本是必要的。

1.For 封装参考 https://learn.microsoft.com/en-us/nuget/consume-packages/package-references-in-project-files格式,如果一个项目引用了Microsoft.VisualStudio.SDK包,这个项目实际上依赖于 nuget 包Microsoft.VisualStudio.SDK依赖于取决于。我们称他们为nuget包依赖 https://stackoverflow.com/questions/28229892/nuget-package-dependencies.

2.而对于微软VisualStudio SDK https://www.nuget.org/packages/Microsoft.VisualStudio.SDK/15.9.3带有版本的包15.9.3,它还取决于Microsoft.VisualStudio.Threading包。(至少15.8.132,默认情况下nuget会下载15.8.132)

所以你的扩展项目实际上取决于Microsoft.VisualStudio.Threading.dll 15.8.0.0.

3.而对于Microsoft.VisualStudio.Threading.dll在路径下C:\Program Files (x86)\Microsoft Visual Studio\2017\xxx\Common7\IDE\PrivateAssemblies,对于VS2017-15.9.16来说,其版本是15.8.0.0。对于VS2017-15.0.0,其版本是15.0.0.0。

那么如果我有 VS2017-15.6.x,我就可以拥有Microsoft.VisualStudio.Threading.dll其版本在此范围内[15.0.0.0,15.8.0.0)。如果我们将依赖于版本 15.8.0.0 的程序集的扩展安装到比 15.8.x 更旧的 vs 版本中,我们将遇到类似的问题。

我可以看到两种可能的解决方案

我认为您的用户在使用旧版本时可能会遇到类似的情况。如果他将 vs 更新到最新的 vs2017-15.9.17,这个问题就会消失。是的,如果你使用Microsoft.VisualStudio.SDK版本 15.9.3,请将 Visual Studio 的最低版本设置为 15.9.3。

您可以在那里检查依赖关系:

该软件包还依赖于 15.9.2x 甚至 15.9.3 版本的软件包。为了避免遇到类似的问题,例如Could not load file or assembly 'xxx, Version=15.9.0.0,建议增加最低要求,使VS版本与VS SDK版本一致。 (在15.9.0版本的VS中,我们可能不会遇到15.8.0.0无法加载xxx的问题,但15.9.2.0可能会遇到无法加载xxx的问题)

希望能帮助到你 :)

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

如何避免在 Visual Studio 2017 中加载 Microsoft.VisualStudio.Threading 时出现错误 的相关文章

随机推荐

  • 用于连接非映射表的 Hibernate HQL

    我有一个名为 Kurs 的实体 Entity public class Kurs Id GeneratedValue strategy GenerationType AUTO private long kursId private Stri
  • PACT - 使用提供者状态

    我正在尝试使用 pact 来验证 Spring Boot 微服务 我已经从消费者生成了契约文件 并使用契约经纪人在提供者端验证了它 我有另一个用例 我需要在根据实际服务响应验证协议文件之前执行一些代码 我阅读了有关状态更改 URL 和通过闭
  • 您对这个项目有什么建议? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何删除cumulo实例?

    我在通过调用初始化accumulo时创建了一个实例累积初始化但现在我想删除该实例 并且我想创建一个新实例 任何人都可以帮忙做到这一点吗 从 HDFS 中删除 ACCUMULO HOME conf accumulo site xml 中的 i
  • AgGrid 自定义 html 拖动

    我只是在考虑更改 ag 网格组件的拖动悬停 我找不到太多关于它的信息 有人知道如何在拖动模式下更改行的样式吗 我的目标是拥有不同的动画 整行 例如材质 UI UX https material io design components li
  • 为什么带有 EL 2.2 的 JSF 2.x 允许 MethodExpression 代替 ValueExpression?

    我看到几个问题询问如何将参数传递给 JSF 方法 在 EL2 2 和 servlet 3 0 中 它允许用户将参数传递到方法调用中 一个例子 如何从渲染的 h outputText 将参数传递给方法 https stackoverflow
  • C++11 std::thread 接受带有右值参数的函数

    我有一些作业 并且我很难理解 可能 如何将参数传递给 std thread 构造函数 假设以下代码 我删除了不需要的部分 template
  • 使用.net core 3.0进行脚本动态编译和运行代码

    我想提供在 NET core 3 中编译和运行代码 Csharp 类 的可能性 以用于脚本编写 脚本 类 应从文件系统加载并注入现有 静态 程序集中 https laurentkempe com 2019 02 18 dynamically
  • Javascript 函数将印度货币数字转换为支持 paise 的单词

    还有比这更快的解决方案吗 在花了一些时间谷歌搜索和玩弄其他人的代码之后 我做了一个快速修复 可重用函数适用于最大 99 99 99 999 的数字 number2text 1234 56 将返回ONE THOUSAND TWO HUNDRE
  • handleWatchKitExtensionRequest 未响应 Watchkit 扩展中的 openParentApplication (Swift)

    我正在尝试将信息从我的 WatchKit 应用程序发送到我的主要父应用程序 据我了解 我应该能够使用openParentApplication在我的 watchkit 扩展中 该扩展将由handleWatchKitExtensionRequ
  • 将 YUV 作为字节数组导入

    我正在开发一个项目 必须对 YUV420 SP NV21 图像 从 Android 相机拍摄 应用阈值 以确定哪些像素是 黑色 哪些像素是 白色 因此 我想将其作为字节数组导入 Python 中 使用 OpenCV NumPy PIL 这样
  • 如何从 bash 脚本在 GitHub 操作上创建输出?

    我有一个 GitHub 操作 本质上是一个 bash 脚本 我的操作的 javascript 部分执行 bash 脚本 const core require actions core const exec require actions e
  • 在模型上重复纹理

    我正在创建一个小游戏 你在迷宫中 迷宫的组织方式是2D Array 描述x and z position和block type 原来如此Tile based 假设每个块都是1 m 现在我的角色是2m高 迷宫应该是4m高的 因此 如果该瓷砖上
  • SQL查询多个AND和OR不起作用

    我有一个单元格 其中包含由双管分隔的值 我正在尝试使用以下内容搜索此单元格的内容 其中 10 是要搜索的数字 10 10 10 和 10 我的查询似乎只返回 10 没有其他变化 有人可以告诉我为什么它不起作用吗 提前谢谢了 您在下面看到的
  • 为什么从 python/uwsgi 内部调用时 `node.js` 会死掉?

    从外壳这个python启动并与之通信的代码node js过程工作正常 gt from subprocess import gt js function m console log m hello world gt out err Popen
  • 更改java的.class文件而不重新编译

    有什么办法可以做到以下几点 所以我有一个project jar 文件 在其中我需要修改传递给classA class 的某些方法的字符串 例如 假设这个 classA class 有一个名为 change String a String b
  • 检查 Postgres 复合字段是否为 null/空

    With Postgres 复合类型 http www postgresql org docs 9 2 static rowtypes html您基本上可以构建一个字段 其结构被定义为另一个表 我有一个名为 recipient 的复合字段
  • 错误:Angular 解析期间出现 Http 失败

    我正在学习 Angular 我想在 HTML 页面上显示 JSON 数据 错误是 Angular 解析期间 Http 失败 我不知道为什么请告诉我我的错误并给我链接如何显示多种类型的 JSON 数据 person component htm
  • MSBuild - 设置解决方案的属性

    我们在 VS2008 中使用 NET 3 5 我有一个包含约 20 个项目的解决方案 随着应用程序的增长和添加新模块 这个数字会随着时间的推移而增长 今天我需要为每个项目设置一个属性 我必须编辑每个 csproj 文件以添加以下内容
  • 如何避免在 Visual Studio 2017 中加载 Microsoft.VisualStudio.Threading 时出现错误

    我已在仅针对 Visual Studio 2019 的版本中对 Visual Studio 包进行了更新日志 我开始使用 NuGet 包的一项更改微软VisualStudio SDK 版本 16 0 202 并删除了许多对 DLL 的单独引