Ich verwende NuGet Package Restore. Ich möchte während eines TFS-Build-Serverprozesses benutzerdefinierte Quellen angeben.
Die NuGet.targets-Datei im versteckten '.nuget'-Ordner besagt, dass Sie entweder Quell-Repositorys angeben können oder dass sie auf die NuGet.config in% APPDATA%\NuGet\NuGet.config zurückgreift.
Es gibt jedoch auch eine NuGet.config im versteckten '.nuget'-Ordner. Ich nahm an, dass, wenn Sie in NuGet.targets keine Quellen-Repositorys angegeben hätten, diese auf NuGet.config im versteckten '.nuget'-Ordner zurückgreifen würde. Dies scheint nicht der Fall zu sein.
Irgendwelche Ideen?
Laut Pranavkm, einem der NuGet-Entwickler, verwendet NuGet Package Restore zum Zeitpunkt dieses Schreibens nicht die NuGet.config im ausgeblendeten '.nuget'-Ordner für Quellen. Sie wird momentan nur für eine lösungsspezifische Einstellung verwendet (um Quellcodeverwaltungsbindungen zu ignorieren). Er sagt, dass das NuGet-Team auf dem Radar ist, um alle Aspekte von NuGet.config zu nutzen, aber es wird immer wichtiger.
Mit der aktuellen Version von NuGet ist es möglich, benutzerdefinierte Repositorys in der NuGet.config-Datei der Lösung anzugeben und die Paketwiederherstellung während eines Builds zu aktivieren. Mit dieser NuGet.config-Datei konnten wir Pakete im Rahmen eines TFS-Builds automatisch aus dem internen Repository wiederherstellen, ohne dass weitere Aktionen in der Build-Definition erforderlich waren:
<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>
Hinweis: TFS2013s Standardvorlagen für Build-Prozesse implementieren bereits den NuGet Package Restore-Workflow ohne spezielle Konfiguration, wie hier angegeben: http://docs.nuget.org/docs/reference/package-restore-with-team-build =
Wenn Sie die Paketwiederherstellung aktivieren, finden Sie im Ordner $ (SolutionDir)\.nuget eine MSBuild-Datei NuGet.targets.
Sie können die Paketquellen festlegen, indem Sie das Element <PackageSources> "" </ PackageSources> ändern.
Beispiel:
<!-- 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>
Eine weitere Option ist das Hinzufügen von Quellen zu einer maschinenweiten (nicht benutzerspezifischen) Nuget-Konfiguration auf dem Build-Server.
in tfs build 2017, wenn Sie die NuGet Restore-Task-Version 1 verwenden. * Sie können die NuGet.Config-Datei auswählen, die während des Builds verwendet werden soll .. _. Siehe Abbildung unten NuGet Restore-Task