我的解决方案混合了 Visual Basic 和 C# 项目,总共 32 个项目。当我从 Visual Studio 2017 重建时,所有项目都从 nuget.org 恢复。当我触发 .bat 文件时,只有 16 个项目从 nuget 恢复包。
此行存在于 .bat 文件中。
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\msbuild" Projectname.sln /p:Configuration=Debug /t:Rebuild
我发现了一个模式,在 .sln 文件中,每个恢复 nuget 的项目都有以下内容:
{5E..guid..02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5E..guid..02}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5E..guid..02}.Debug|x86.ActiveCfg = Debug|x86
{5W..guid..02}.Debug|x86.Build.0 = Debug|x86
不恢复nuget的有:
{0A..guid..3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0A..guid..3B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0A..guid..3B}.Debug|x86.ActiveCfg = Debug|Any CPU
{0A..guid..3B}.Debug|x86.Build.0 = Debug|Any CPU
注意区别:两条底线在工作时有'Debug|x86'。即使对于不恢复 nugets 的项目,Visual Studio 中的“构建”选项卡也会在下拉菜单中显示“平台目标:x86”。
如果我手动将 .sln 文件更改为 x86,它会在新的重建后恢复到任何 CPU。
关于如何使每个项目以 x86 为目标以便从 .bat 文件中恢复 nuget 包的任何想法?