Hôm nay tôi đã phải đối mặt với một hành vi kỳ lạ của NuGet khi cài đặt một gói.NuGet quyết định có nên sử dụng bộ đệm gói cục bộ hay không?
Mô tả ngắn gọn: do kịch bản xây dựng của tôi có gói NuGet. Tôi không thay đổi phiên bản mỗi lần, vì vậy mỗi bản dựng đều tạo ra MyPackage.1.0.0.nupkg
. Là bước cuối cùng của quá trình xây dựng, tôi đẩy gói đến máy chủ NuGet được triển khai bên trong mạng cục bộ.
Bây giờ, trên một máy khác, tôi chạy nuget install MyPackage -Source http://myserver/nuget
, rõ ràng là cài đặt gói NuGet.
Sự cố xảy ra khi tôi đẩy một bản cập nhật khác của MyPackage
- vẫn là phiên bản 1.0.0
. Khi tôi cố gắng cài đặt lại nó trên máy khách, tôi nhận được phiên bản trước của gói.
tôi phát hiện ra it is the local cache to be blamed: nếu gói đã được cài đặt, nó được vào bộ nhớ cache cục bộ và thời gian tiếp theo gói của cùng một phiên bản được cài đặt, nó được lấy từ bộ nhớ cache. Đủ công bằng!
Nhưng, mặt khác, có một tùy chọn -NoCache
của lệnh nuget install
và tôi hy vọng nó sẽ bỏ qua bộ đệm cục bộ.
Tuy nhiên, điều này không đúng. Lần đầu tiên tôi chạy nó với -NoCache
, nó cập nhật bộ nhớ cache và cài đặt phiên bản mới nhất. Tuy nhiên, lần sau gói vẫn được lấy từ bộ nhớ cache, ngay cả với tùy chọn -NoCache
.
Dự kiến phải không? Có phải vì phiên bản không bị thay đổi?
Chỉ trong trường hợp: tất cả các thao tác NuGet được thực hiện với NuGet.exe
và từ phiên PowerShell.
CẬP NHẬT: Tôi quan sát hành vi lạ tôi chỉ có thể giải thích bằng bộ nhớ cache hết hạn. Khi gói được lưu trong bộ nhớ cache, tất cả các cuộc gọi tiếp theo đến nuget install
sẽ kéo gói từ bộ nhớ cache, cho đến khi một thời gian trôi qua. Tôi đã không nhận thấy thời gian chính xác, nhưng nó chắc chắn hơn một giờ. Sau này, nuget install
cập nhật các gói trong bộ nhớ cache, và tình hình trở nên giống nhau ...
Có lẽ nếu bạn bao gồm -verbosity chi tiết thêm các bản ghi có thể cung cấp cho chúng tôi một số gợi ý? – allen
Nếu tôi nối 'chi tiết độ chi tiết' vào dòng lệnh, nó không xuất thêm thông tin, chỉ cần' Cài đặt thành công 'MyPackage.1.0.0'' Bạn có biết tại sao lại như vậy? –
Tôi đã hy vọng nhật ký cho thấy một số hướng – allen