我创建了一个issue with nuget developers,并提出了一个修复方案。
修改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">
增加这个要素RestoreNTmand for WinNT之前:
<Exec Command="$(RestoreSolutionLevelCommand)"
LogStandardErrorAsError="true"
Condition="'$(OS)' == 'Windows_NT' And Exists('$(PackagesConfig)') And Exists('$(SolutionLevelPackagesConfig)')" />
这使我的msbuild恢复解决方案级别的软件包。
所以据我理解正确的话,你需要检查是否安装了亚军,如果不是,它运行的NuGet并安装软件包,一个任务是什么? – stej 2012-03-02 13:44:15
是的,类似的东西。 (理想情况下,解决方案级别的软件包应该具有内置的自动恢复功能,我应该简单地在'packages'文件夹内的某处调用nunit-console.exe,但这可能只会在未来版本的NuGet中出现。) – Borek 2012-03-02 14:09:37
根本不知道解决方案级别的软件包存在。你如何认同他们? VS如何跟踪NUnit.Runners已经安装? – springy76 2012-03-19 15:54:45