我正在使用NuGet Package Restore。我想在TFS构建服务器进程中指定自定义源。
隐藏' .nuget'中的NuGet.targets文件文件夹说你可以指定源存储库,或者它将回退到%APPDATA%\ NuGet \ NuGet.config中的NuGet.config。
然而隐藏的' .nuget'中有一个NuGet.config。文件夹也是。我假设如果你没有在NuGet.targets中指定源存储库,它将回退到隐藏的' .nuget'中的NuGet.config。夹。这似乎并非如此。
有什么想法吗?
答案 0 :(得分:30)
使用当前版本的NuGet,可以在解决方案的NuGet.config文件中指定自定义存储库,并在构建期间启用程序包还原。 拥有这个NuGet.config文件允许我们在TFS构建下自动恢复内部存储库中的包,而不需要在构建定义中执行任何其他操作:
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
<packageSources>
<add key="Internal" value="http://MyInternalRepository/nuget" />
</packageSources>
<packageRestore>
<add key="enabled" value="True" />
</packageRestore>
</configuration>
注意:TFS2013的默认构建过程模板已经实现了NuGet包恢复工作流程,没有任何特殊配置,如下所述:http://docs.nuget.org/docs/reference/package-restore-with-team-build
答案 1 :(得分:18)
如果启用包还原,您将在$(SolutionDir)\。nuget文件夹中找到NuGet.targets MSBuild文件。
您可以通过修改&lt; PackageSources&gt;“”&lt; / PackageSources&gt;来设置包源。元件。
示例:
<!-- Package sources used to restore packages. By default will used the registered sources under %APPDATA%\NuGet\NuGet.Config -->
<PackageSources>"http://packages.nuget.org/api/v2/;http://myget.org/F/myfeed/"</PackageSources>
答案 2 :(得分:6)
根据pranavkm,其中一个NuGet开发人员,在撰写本文时,NuGet Package Restore将不会在隐藏的“.nuget”文件夹中使用NuGet.config作为源。它仅用于特定于解决方案的设置(忽略源控件绑定)。他表示,NuGet团队可以利用NuGet.config的所有方面,但它不断受到优先考虑。
答案 3 :(得分:3)
另一个选择是在构建服务器上向计算机范围(非特定于用户)的nuget配置添加源。
答案 4 :(得分:0)
,当您使用NuGet Restore任务版本1. *时,可以选择要在构建过程中使用的NuGet.Config文件。 参见下图NuGet Restore Task