指定 Nuget 使用 特定的 vs MSBUILD 版本

                                                               Nuget 使用 特定的 vs MSBUILD 版本

当机器上同时装多个VS时,比如2019 and vs 2017,发现即使使用 vs 2017的Developer Command Prompt for VS 2017, nuget 命令是自动检测 2019的 编译器。 如下:

指定  Nuget 使用 特定的 vs MSBUILD 版本

这样会导致原来在 vs 2017中能够顺利编译的项目将出现各种问题。

比如,可能是这样的一个错误, 实际上 roject.assets.json是存在的,可是因为项目restore 不正确,导致有些lib找不到而不正确定位到该文件。
Error    NETSDK1004    Assets file '...\obj\project.assets.json' not found. Run a NuGet package restore to generate this file.    MainUI    C:\Program Files\dotnet\sdk\2.1.508\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets

通过指定msbuild 的版本后,发现编译终于正确执行

指定  Nuget 使用 特定的 vs MSBUILD 版本

此外,发现Nuget restore 后面其实还有很options可以选择,如下:

指定  Nuget 使用 特定的 vs MSBUILD 版本

参考:

https://github.com/NuGet/Home/issues/7621

https://blog.walterlv.com/post/specify-msbuild-version-for-nuget-command-line.html

上一篇:c#-是否有一种方法可以从AssemblyInfo.cs覆盖属​​性(例如AssemblyVersionAttribute)


下一篇:c#-MSTest不会在程序集中发现单元测试