我最近开始使用TFS为我们的软件套件实现自动构建。我试图在构建服务器上尽可能少地安装,并且希望避免在第三方库中检入我们的源存储库。
我们的一个项目未能通过缺少依赖项进行构建:
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
这并不奇怪,因为我没有在构建服务器上安装Visual Studio(或Team Explorer等)。为了解决这个问题,我试图使用NuGet自动包恢复来提供适当的库(MSBuild.Microsoft.VisualStudio.Web.targets)。我已经在这里和其他地方阅读了大量的帖子,但未能使其正常工作。基本上,我:
构建运行,但永远不会下载nuget包。除此之外,我没有在构建日志文件中看到任何“RestoreCommand”(或nuget.targets中的其他项)的任何日志条目。它就像nuget.targets完全被忽略了。我希望我一直在看这个太久而且错过了一些简单的步骤。
编辑:我应该提到解决方案在本地计算机上构建良好。我已更新项目引用以引用NuGet中的库。如果我删除所有本地软件包,它会下载它们并正确构建。
答案 0 :(得分:1)
我知道这是一个老问题,但这就是我如何运作的。
我按照这里的说明操作,所以我不必将包文件夹添加到TFS: http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages
然后,我必须使用此链接http://docs.nuget.org/docs/reference/package-restore-with-team-build中提到的简单构建文件,它只是事先触发包恢复。
所有我必须从构建文件更改的是我的解决方案文件的路径和我的nuget.exe不同。
然后我将TFS配置为使用build.proj文件而不是解决方案。
请注意我也升级到了nuget 2.7,因此我不必包含.targets文件。