在Visual Studio 2019 16.11.5(最新版)中,我已安装“Visual Studio扩展开发”工作负载。
我可以使用它来创建C# VSIX项目。如果这样做,它会像预期的那样构建和运行,并且没有编译器警告或错误。
如果我去到“工具/管理解决方案的NuGet程序包”...我可以看到我已安装了NuGet包Microsoft.VisualStudio.SDK v16.0.206,但最新版本是v16.10.31321.278。
如果我去到“更新”选项卡,我可以选择该包并单击“更新”以获取最新版本。
在我执行此操作后,该项目仍然可以构建和运行,但我会收到有关依赖库版本不兼容性的编译器警告:
“发现“Microsoft.VisualStudio.Validation”的不同版本之间的冲突,无法解决。存在“Microsoft.VisualStudio.Validation,Version=16.9.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”和“Microsoft.VisualStudio.Validation,Version=16.10.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”之间的冲突。选择了“Microsoft.VisualStudio.Validation,Version=16.9.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”,因为它是主要的,而“Microsoft.VisualStudio.Validation,Version=16.10.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”没有被选择。”
有关不兼容性的详细信息还有更多细节,这些细节似乎表明主要程序包引用了16.9.0,而某些依赖库引用了16.10.0。如果我查看project.assets.json,我可以看到构建实际上使用v16.9.32。
因此问题是:什么是正确的操作方法来消除此编译器警告并安全地使用最新的SDK来构建我的VSIX?
经过阅读一些资料,我发现有几个选项。 我可以抑制警告,但我不知道怎么做,因为它没有代码。 我可以不升级该软件包。或者,我可以安装Microsoft.VisualStudio.Validation的特定版本,并使用绑定重定向来消除警告,尽管我不知道该版本应该是什么。 如果程序集使用semver,那么16.10.x似乎是正确的库,而不是构建所用的16.9.32。
我可以使用它来创建C# VSIX项目。如果这样做,它会像预期的那样构建和运行,并且没有编译器警告或错误。
如果我去到“工具/管理解决方案的NuGet程序包”...我可以看到我已安装了NuGet包Microsoft.VisualStudio.SDK v16.0.206,但最新版本是v16.10.31321.278。
如果我去到“更新”选项卡,我可以选择该包并单击“更新”以获取最新版本。
在我执行此操作后,该项目仍然可以构建和运行,但我会收到有关依赖库版本不兼容性的编译器警告:
“发现“Microsoft.VisualStudio.Validation”的不同版本之间的冲突,无法解决。存在“Microsoft.VisualStudio.Validation,Version=16.9.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”和“Microsoft.VisualStudio.Validation,Version=16.10.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”之间的冲突。选择了“Microsoft.VisualStudio.Validation,Version=16.9.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”,因为它是主要的,而“Microsoft.VisualStudio.Validation,Version=16.10.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”没有被选择。”
有关不兼容性的详细信息还有更多细节,这些细节似乎表明主要程序包引用了16.9.0,而某些依赖库引用了16.10.0。如果我查看project.assets.json,我可以看到构建实际上使用v16.9.32。
因此问题是:什么是正确的操作方法来消除此编译器警告并安全地使用最新的SDK来构建我的VSIX?
经过阅读一些资料,我发现有几个选项。 我可以抑制警告,但我不知道怎么做,因为它没有代码。 我可以不升级该软件包。或者,我可以安装Microsoft.VisualStudio.Validation的特定版本,并使用绑定重定向来消除警告,尽管我不知道该版本应该是什么。 如果程序集使用semver,那么16.10.x似乎是正确的库,而不是构建所用的16.9.32。