Tôi muốn chạy kho lưu trữ NuGet cục bộ / nội bộ . Tôi nghĩ rằng tôi đã tìm ra cách "sử dụng lại" các gói NuGet hiện có bằng cách đưa chúng vào một dự án giả sử dụng NuGet và quét tệp gói để lấy .nupkg
các tệp được lưu trong bộ nhớ cache cục bộ của tôi , nhưng ...
Làm cách nào để bạn tạo một gói nuget ( .nupkg
) từ một dự án, tự động bao gồm tất cả các phần dll
phụ thuộc chứ không chỉ những phần được lấy qua NuGet?
Đặc biệt:
- Tạo một giải pháp
- Thêm một dự án mới
- Thêm tham chiếu đến các
.dll
tệp / dự án khác <- đây là phần còn thiếu - Thêm gói NuGet qua trình quản lý gói / cmdline / bất cứ điều gì
- một cái gì đó tự động tạo ra
.nupkg
Từ những gì tôi đã tìm thấy, bạn phải làm những việc như
- chỉnh sửa thủ công
.csproj
tệp của bạn để thêm<BuildPackage>true</BuildPackage>
vào để bao gồm các phụ thuộc - tạo
.nuspec
tệp theo cách thủ công và liệt kê thủ công các phụ thuộc của bạn ( tương tự? ) - chạy thủ công
nuget pack
trên.nuspec
tệp của bạn
Nhưng mọi thứ đều là thủ công, thật là ngu ngốc. Ngay cả các giải pháp bán tự động vẫn còn vụng về hoặc nửa thủ công:
- Tạo
.nuspec
mẫu - dường như không bao gồm các yếu tố phụ thuộc, chỉ siêu dữ liệu gói nuget thông qua sự kiện xây dựng (bước # 5), mà bạn cần phải thêm thủ công vào mọi dự án và nó có những điểm kỳ quặc riêng :
"$(SolutionDir).nuget\NuGet.exe" pack "$(ProjectPath)" -Properties Configuration=Release move /Y *.nupkg "$(TargetDir)"
Tôi sẽ giải quyết một cái gì đó tự động tạo một .nuspec
bản kê khai từ các tham chiếu dự án. Sau đó, về mặt lý thuyết thì + sự kiện xây dựng nuget có thể được cuộn lại thành một gói xây dựng dự án / nuget, đó là những gì tôi thực sự muốn thấy.