Solusi yang diusulkan dalam catatan rilis untuk 2.1 tidak bekerja di luar kotak. Mereka lupa menyebutkan bahwa ada kode:
internal string ResolveInstallPath()
{
if (!string.IsNullOrEmpty(this.OutputDirectory))
{
return this.OutputDirectory;
}
ISettings settings = this._configSettings;
...
}
yang mencegahnya bekerja. Untuk memperbaikinya, Anda perlu memodifikasi file NuGet.targets Anda dan menghapus parameter 'OutputDirectory':
<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch)</RestoreCommand>
Jadi sekarang, jika Anda menambahkan config 'repositoryPath' di suatu tempat di NuGet.config (lihat catatan rilis untuk deskripsi tempat yang valid untuk meletakkan file config), itu akan mengembalikan semua paket ke satu lokasi, tetapi ... .csproj Anda masih berisi petunjuk untuk majelis yang ditulis sebagai jalur relatif ...
Saya masih tidak mengerti mengapa mereka melakukan hal yang sulit alih-alih mengubah PackageManager sehingga itu akan menambah jalur petunjuk relatif ke PackagesDir. Itulah yang saya lakukan secara manual untuk memiliki lokasi paket yang berbeda secara lokal (di desktop saya) dan pada agen pembangunan.
<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>