使用 Nuget 恢复 特定 Visual Studio MSBUILD 版本

当机器上安装有多个Visual Studio版本时,如VS2019和VS2017,使用Nuget命令可能会自动检测并使用较新的编译器版本,导致原本在旧版本中能正常编译的项目出现问题。本文详细介绍了如何指定MSBuild的版本来解决此类问题,并提供了Nuget restore命令的更多选项说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                                               Nuget 使用 特定的 vs MSBUILD 版本

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

这样会导致原来在 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 restore 后面其实还有很options可以选择,如下:

参考:

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值