【发布时间】:2014-08-29 07:45:38
【问题描述】:
我正在尝试迁移到 nuget 的新自动包还原。虽然它在我自己的机器上运行良好(包已恢复),但在构建服务器上作为 TFS 构建执行的构建不会构建,抱怨他们找不到各种 dll(应该作为恢复的一部分下载)。
我在我的解决方案文件夹中创建了一个 nuget.config,如下所示:
http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html
我也试过把这个 nuget.config 文件放在 TFS 中的 nuget.exe 文件旁边,希望它会被使用,但无济于事。
这里的nuget参考:
http://docs.nuget.org/docs/reference/nuget-config-file
表示应该选择我的解决方案文件夹中的 nuget.config。但似乎不是。
我已经走到了尽头。根据 nuget 的说法,包还原功能是专门设计的,因此不需要签入包。但是,关于如何让 TFS 实际还原包的信息很少,而且我发现的内容不起作用。
如有任何帮助,我们将不胜感激。
我的 nuget.config 如下所示:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
<packageSources>
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
<add key="ads" value="<address to local repository>" />
</packageSources>
</configuration>
【问题讨论】:
-
Visual Studio 中内置了新的自动包还原,它不使用 MSBuild。据推测,TFS 不会使用 Visual Studio 来构建解决方案。我想看看您是否可以在 TFS 中设置一个运行“nuget restore YourSolution.sln”的预构建步骤。假设您不想使用基于 MSBuild 的包还原。
-
你是对的——这就是问题所在。 “预构建”步骤只是需要创建的自定义构建的一部分。如果有一种方法可以将预构建步骤设置为构建定义的一部分,那也会很有用,但看不到。
-
我在链接 [link]docs.nuget.org/consume/package-restore/team-build 上遇到了问题。它恢复所有包,但甚至不尝试构建解决方案。此外,msbuild 的输出显示它运行了 "C:\Builds\1\Services\MyProject\src\tools\NuGet\NuGet.exe" restore "" 为什么是空字符串?为什么不是它找到的 .sln 文件夹?它确实将包还原到 src 下的包文件夹。此外,如果我尝试手动构建解决方案,现在里面的所有项目都失败了,说找不到包。知道我做错了什么吗?
标签: visual-studio tfs nuget build-process nuget-package-restore