Die in den Versionshinweisen für 2.1 vorgeschlagene Lösung funktioniert nicht sofort. Sie haben vergessen zu erwähnen, dass es Code gibt:
internal string ResolveInstallPath()
{
if (!string.IsNullOrEmpty(this.OutputDirectory))
{
return this.OutputDirectory;
}
ISettings settings = this._configSettings;
...
}
was verhindert, dass es funktioniert. Um dies zu beheben, müssen Sie Ihre NuGet.targets-Datei ändern und den Parameter 'OutputDirectory' entfernen:
<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch)</RestoreCommand>
Wenn Sie nun irgendwo in NuGet.config die Konfiguration 'repositoryPath' hinzufügen (eine Beschreibung der gültigen Speicherorte für die Konfigurationsdateien finden Sie in den Versionshinweisen), werden alle Pakete an einem einzigen Speicherort wiederhergestellt, aber ... Ihre .csproj-Datei enthält Hinweise zu Assemblys, die als relative Pfade geschrieben wurden ...
Ich verstehe immer noch nicht, warum sie sich schwer getan haben, anstatt PackageManager zu ändern, damit es Hinweispfade relativ zu PackagesDir hinzufügt. Auf diese Weise habe ich manuell verschiedene Paketspeicherorte lokal (auf meinem Desktop) und auf dem Build Agent.
<Reference Include="Autofac.Configuration, Version=2.6.3.862, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>$(PackagesDir)\Autofac.2.6.3.862\lib\NET40\Autofac.Configuration.dll</HintPath>
</Reference>