我已经向 nuget 开发人员提出了一个问题,并提出了修复建议。
使用以下更改修改 nuget.targets 文件:
在<PropertyGroup Condition=" '$(OS)' == 'Windows_NT'">
添加此元素:
<SolutionLevelPackagesConfig>$([System.IO.Path]::Combine($(SolutionDir), ".nuget\packages.config"))</SolutionLevelPackagesConfig>
在<PropertyGroup>
添加此元素:
<RestoreSolutionLevelCommand>$(NuGetCommand) install "$(SolutionLevelPackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch) -solutionDir "$(SolutionDir) "</RestoreSolutionLevelCommand>
在<Target Name="RestorePackages" DependsOnTargets="CheckPrerequisites">
WinNT 的 RestoreCommand 之前添加此元素:
<Exec Command="$(RestoreSolutionLevelCommand)"
LogStandardErrorAsError="true"
Condition="'$(OS)' == 'Windows_NT' And Exists('$(PackagesConfig)') And Exists('$(SolutionLevelPackagesConfig)')" />
这使我的 msbuild 恢复了解决方案级别的包。