Giải pháp được đề xuất trong ghi chú phát hành cho 2.1 không hoạt động vượt trội. Họ quên đề cập rằng có mã:
internal string ResolveInstallPath()
{
if (!string.IsNullOrEmpty(this.OutputDirectory))
{
return this.OutputDirectory;
}
ISettings settings = this._configSettings;
...
}
mà ngăn cản nó làm việc. Để khắc phục điều này, bạn cần sửa đổi tệp NuGet.target của mình và xóa tham số 'OutputDirectory':
<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch)</RestoreCommand>
Vì vậy, bây giờ, nếu bạn thêm cấu hình 'repositoryPath' ở đâu đó trong NuGet.config (xem ghi chú phát hành để biết mô tả về các vị trí hợp lệ để đặt tệp cấu hình), nó sẽ khôi phục tất cả các gói vào một vị trí, nhưng ... .csproj của bạn vẫn chứa các gợi ý cho các hội đồng được viết dưới dạng đường dẫn tương đối ...
Tôi vẫn không hiểu tại sao họ lại đi một cách khó khăn thay vì thay đổi Gói Trình quản lý để nó sẽ thêm các đường dẫn gợi ý liên quan đến GóiDir. Đó là cách tôi làm thủ công để có các vị trí gói khác nhau cục bộ (trên máy tính để bàn của tôi) và trên tác nhân xây dựng.
<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>