0

我的解决方案混合了 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 包的任何想法?

4

1 回答 1

0

事实证明,各种 .vbproj 和 .csproj 文件中缺少这一行:

<Import Project="$(SolutionDir)\.nuget\nuget.targets" />

因此,添加后,触发 .bat 文件时会恢复 nuget 包。

于 2020-09-04T05:48:22.613 回答