Рішення, запропоноване в примітках до випуску для 2.1, не працює поза коробкою. Вони забули згадати, що існує код:
internal string ResolveInstallPath()
{
if (!string.IsNullOrEmpty(this.OutputDirectory))
{
return this.OutputDirectory;
}
ISettings settings = this._configSettings;
...
}
що заважає йому працювати. Щоб виправити це, вам потрібно змінити файл NuGet.targets та видалити параметр 'OutputDirectory':
<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch)</RestoreCommand>
Отже, якщо ви додасте конфігурацію "repositoryPath" десь у NuGet.config (див. Примітки до випуску для опису дійсних місць для розміщення файлів конфігурацій), він відновить усі пакети в одне місцезнаходження, але ... Ваш .csproj все ще містить підказки до збірок, написаних як відносні шляхи ...
Я досі не розумію, чому вони пішли важким шляхом замість зміни PackageManager, щоб це додало шляхи підказки щодо PackagesDir. Ось так я вручну розміщую різні локальні пакети локально (на своєму робочому столі) та в агенті побудови.
<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>