为NuGet Package Restore指定用于构建服务器的NuGet源?

Ben*_*key 39 tfs nuget

我正在使用NuGet Package Restore.我想在TFS构建服务器进程中指定自定义源.

隐藏的".nuget"文件夹中的NuGet.targets文件表明您可以指定源存储库,也可以回退到%APPDATA%\ NuGet\NuGet.config中的NuGet.config.

但是在隐藏的'.nuget'文件夹中也有一个NuGet.config.我假设如果您没有在NuGet.targets中指定源存储库,那么它将回退到隐藏的".nuget"文件夹中的NuGet.config.似乎并非如此.

有任何想法吗?

Vel*_*mir 31

使用当前版本的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>
Run Code Online (Sandbox Code Playgroud)

注:TFS2013默认的生成过程模板已经实现了NuGet包没有任何特殊的配置恢复工作流程这里所说:http://docs.nuget.org/docs/reference/package-restore-with-team-build


Xav*_*ter 19

如果启用包还原,您将在$(SolutionDir)\.nuget文件夹中找到NuGet.targets MSBuild文件.

您可以通过修改<PackageSources>""</ PackageSources>元素来设置包源.

例:

<!-- 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>
Run Code Online (Sandbox Code Playgroud)

  • 这完全没有回答这个问题.我已经指出你可以使用NuGet.targets来指定源代码.问题是关于NuGet.config以及它是否会被使用. (4认同)

Ben*_*key 6

根据pranavkm,其中一个NuGet开发人员,在撰写本文时,NuGet Package Restore将不会在隐藏的".nuget"文件夹中使用NuGet.config作为源代码.它仅用于特定于解决方案的设置(忽略源控件绑定).他表示,NuGet团队可以利用NuGet.config的所有方面,但它不断受到优先考虑.

  • 仅供参考,更新:从v2.1开始支持分层NuGet.configs.见http://docs.nuget.org/docs/release-notes/nuget-2.1 (3认同)