Có thể buộc các gói NuGet ghi đè lên các tệp hiện có không? Tôi cần một cách tốt đẹp của việc áp dụng các bản vá lỗi (tập tin, dll, tài nguyên) trên 3 dự án tương tự và thông qua đó điều này có thể là một giải pháp tốt đẹp.nuget ghi đè lên các tệp
Trả lời
Nó có thể được thực hiện với PowerShell và một gói phụ thuộc ...
Tôi có một gói NuGet rằng tôi có thể tạo cho ASP.NET MVC nó có tất cả các tập tin mà tôi muốn thêm vào dự án MVC chuẩn (DisplayTemplates, EditorTemplate, Tiện ích mở rộng, BaseController, v.v.). Giả sử nó được gọi là "Company.WebMvc"
Tôi đã tạo một gói NuGet khác có tên "Company.WebMvc-Prep" Có tập lệnh Install.ps1 xóa mọi thứ tôi không muốn khỏi dự án Mvc chuẩn. Dưới đây là ví dụ về mã xóa các tệp Tập lệnh hiện có ...
param($installPath, $toolsPath, $package, $project)
#Remove Script Files
$scripts = $project.ProjectItems | Where-Object { $_.Name -eq "Scripts" }
if ($scripts) {
$scripts.ProjectItems | ForEach-Object { $_.Delete() }
}
Sau đó, tôi làm cho "Company.WebMvc-Prep" là sự phụ thuộc của "Company.WebMvc". Tại sao? vì Install.ps1 (bình thường) được chạy sau khi NuGet thêm các tệp từ thư mục nội dung. Tôi cần nó để xóa các tập tin đầu tiên sau đó thêm những cái mới. Vì vậy, khi bạn gọi ...
Install-Package Company.WebMvc
Company.WebMvc-Prep được cài đặt đầu tiên vì nó là một sự phụ thuộc (chạy Install.ps1)
Sau đó Company.WebMvc được cài đặt thêm nội dung của bạn.
Dài và ngắn gọn là ... Bạn Có thể ghi đè lên nội dung hiện có trên dự án của bạn thông qua gói NuGet.
P.S. Hãy nhớ rằng bạn cũng có thể bạn một phần các lớp để cô lập mã gói NuGet so với mã cụ thể của dự án.
Ghi đè tệp nội dung không được hỗ trợ ngay hôm nay.
Bất kỳ ý tưởng nào nếu/khi nào? Chúng tôi muốn sử dụng nuget để hỗ trợ việc phân phối/đồng bộ hóa cấu hình được chia sẻ (bên thứ ba) mà chúng tôi phụ thuộc vào. Nó sẽ là trơn nếu
Nếu không có bạn nên thêm – davidfowl
http://nuget.codeplex.com/workitem/278 - dường như được dự kiến cho vNext (2.3) :) –
Như David Fowler đề xuất trong cuộc thảo luận này http://nuget.codeplex.com/discussions/252305 bạn có thể triển khai tệp trong thư mục tạm thời và sau đó ghi đè lên vị trí ban đầu bằng cách sử dụng tập lệnh PowerShell.
Mặc dù bạn dường như không thể chỉ định điều này cho tất cả các lượt cài đặt của gói (theo các câu trả lời khác), nhưng thực sự có thể chỉ định nó cho một lần cài đặt. Cài đặt gói với:
Install-Package com.company.mypackage -FileConflictAction Overwrite
Thao tác này sẽ tự động ghi đè tất cả các tệp xung đột trong quá trình cài đặt.
Cảm ơn ý tưởng, nhưng nó không hiệu quả với tôi. Theo [doc chính thức] (https://docs.microsoft.com/en-us/nuget/tools/ps-ref-update-package) -FileConflictAction sẽ được áp dụng cho các tệp được tham chiếu trong dự án. Thật không may đó không phải là trường hợp của tôi. –
- 1. Git stash để ghi đè lên các tệp đã thêm
- 2. Ghi đè lên Jquery Mobile CSS
- 3. Tệp PHP tải lên và ghi đè lên tệp có cùng tên
- 4. Yêu cầu ghi đè đè lên bộ điều khiển SpringMVC
- 5. Ghi đè lên: di chuột với jQuery?
- 6. PrimeFaces: cách ghi đè lên lớp CSS
- 7. Ghi đè lên Setter trong Phân lớp
- 8. Symfony2: cách ghi đè lên mẫu lõi?
- 9. Có thể ghi đè lên MultipartFormDataStreamProvider để không lưu tải lên hệ thống tệp không?
- 10. Magento ghi đè/lib/tệp?
- 11. ghi đè lên tệp trước đó trong khi tải lên hình ảnh trong mã vạch
- 12. Làm cách nào để ghi đè lên các tệp hiện có theo lô?
- 13. Làm cách nào để ngăn 'Xuất bản Web' ghi đè lên các tệp cấu hình?
- 14. Có thể ghi đè lên các mục tiêu nant từ tệp buildfile được bao gồm không?
- 15. Ghi vào tệp, nhưng ghi đè lên nếu nó tồn tại
- 16. Sao chép tập tin mà không ghi đè lên
- 17. Drupal 7 - Ghi đè lên biểu mẫu HTML cơ bản ghi đè
- 18. CreateFile luôn ghi đè lên tập tin được chỉ định
- 19. Cảnh báo: "... ghi đè Object.Equals (đối tượng o) nhưng không ghi đè lên Object.GetHashCode()"
- 20. Ghi đè đối tượng ghi đè với các liên kết
- 21. C++ Ghi đè ... ghi đè?
- 22. Ghi đè hoặc ghi đè
- 23. Python thay thế và ghi đè lên thay vì phụ
- 24. NuGet - không cho phép ghi đè gói (có cùng tên và số phiên bản)
- 25. Node JS ghi đè lên mô-đun tiêu chuẩn
- 26. Ghi đè các thuộc tính với MSBuild
- 27. "s3cmd nhận" ghi đè các tệp cục bộ
- 28. WIX cài đặt tệp, ghi đè
- 29. WiX-- luôn ghi đè lên phiên bản trước
- 30. ghi đè upload_max_filesize
Rất cám ơn vì điều này. Đó chính xác là những gì tôi đang tìm kiếm.Đã không nghĩ về con đường phụ thuộc. Điều này cũng đảm bảo rằng tôi tuyên bố rõ ràng những tệp nào cần xóa và cập nhật, ít bị lỗi hơn. – keeney
Tôi đã thử loại giải pháp này, tuy nhiên trong trường hợp của tôi, mỗi khi một phiên bản mới của gói được cài đặt, tôi muốn xóa các tệp cũ và đặt các tệp mới tại chỗ. Điều này đòi hỏi tôi phải cập nhật phiên bản gói Prep mỗi khi gói chính được cập nhật ... Tôi đã tự hỏi nếu tôi có thể tránh điều này. – rekna