Specify NuGet sources for build server to use with NuGet Package Restore

nugettfs

I'm using NuGet Package Restore. I want to specify custom sources during a TFS build server process.

The NuGet.targets file in the hidden '.nuget' folder says that you can either specify sources repositories, or that it will fall back to the NuGet.config in %APPDATA%\NuGet\NuGet.config.

There is however a NuGet.config in the hidden '.nuget' folder as well. I assumed that if you did not specify sources repositories in NuGet.targets that it would fall back to the NuGet.config in the hidden '.nuget' folder. This doesn't seem to be the case.

Any ideas?

Best Answer

With the current version of NuGet it's possible to specify custom repositories in the solution's NuGet.config file and enable package restore during a build. Having this NuGet.config file allowed us to automatically restore packages from internal repository under a TFS build without any other actions in the build definition:

<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>

Note: TFS2013's default Build Process Templates already implements NuGet Package Restore workflow without any special configuration as stated here: http://docs.nuget.org/docs/reference/package-restore-with-team-build