2012-04-26 27 views
5

Trong gói NuGet MiniProfiler.MVC3 NuGet, nó tạo tệp trong App_Start được sử dụng để kiểm soát cài đặt MiniProfiler (SqlFormatter để sử dụng, sửa đổi đối với ViewEngines, khi bắt đầu MiniProfiler , v.v.)Cập nhật gói MiniProfiler.MVC3 NuGet sau khi chỉnh sửa MiniProfiler.cs trong App_Start

Có rất nhiều nhận xét TODO trong tệp này nói về cách thay đổi mã để thực hiện theo cách bạn muốn. Điều này là rất tốt, nhưng khi gói NuGet được cập nhật, nó sẽ thấy rằng tôi đã thay đổi tệp và không kéo xuống phiên bản cập nhật. Vấn đề ở đây là tôi mất bất kỳ cập nhật nào cho tệp đó và tùy thuộc vào những gì được cập nhật trong gói, làm cho nó không sử dụng được (ví dụ, khi nâng cấp MiniProfiler.MVC3 từ phiên bản 1.9 lên phiên bản 2.0.1 sau khi sửa đổi MiniProfiler.cs trong App_Start , dự án sẽ không còn xây dựng vì những thay đổi cần thiết đối với tệp đó trong phiên bản 2.0.1).

Cách tốt nhất để xử lý việc này là gì? Tôi có nên tạo tệp của riêng mình trong App_Start và không sửa đổi tệp trong gói NuGet, đảm bảo rằng tôi sẽ luôn nhận được bản cập nhật đầy đủ khi nâng cấp lên phiên bản mới nhất của gói NuGet không?

Trả lời

1

Bạn có thể sao lưu tệp trong App_Start, cập nhật tệp, sau đó hợp nhất tệp theo cách thủ công hoặc sử dụng công cụ hợp nhất. Bạn có thể sẽ làm điều này nếu bạn đang sử dụng điều khiển nguồn.

0

Nhanh chóng và bẩn: tạo tệp bạn muốn. Sau đó sao chép qua/hợp nhất mỗi khi bạn nâng cấp bằng nugget. Hoặc với mọi biên dịch. Thời gian xây dựng thêm là không đáng kể.

Tốt hơn một chút: sử dụng sự kiện biên dịch trước trong studio trực quan và so sánh các tệp. Nếu chúng khác nhau - hãy sao chép hoặc cho người dùng biết. Tôi không thể tìm ra một cách để hiển thị một hộp thông báo, hoặc tương tự, trên đỉnh đầu của tôi nhưng người ta luôn có thể tạo một tập tin mới với một lỗi biên dịch và một số văn bản gần "sự khác biệt trong tập tin xxx".

0

thử sử dụng các hàng đợi có trọng lượng. Bạn có thể lấy mã của bạn đến điểm bạn muốn (không bao gồm tệp bạn tham chiếu), và sau đó cam kết. Thực hiện thay đổi đối với tệp của bạn và đẩy nó vào hàng đợi. Hãy chắc chắn loại trừ nó khỏi bất kỳ cập nhật nào trong tương lai (theo cách thủ công), và sau đó khi bạn muốn cập nhật gói của mình, hãy xóa nó khỏi cơ sở mã của bạn. Điều này sẽ làm cho nó trông giống như nó được sử dụng để, và chạy cập nhật nuget. Sau đó, bạn có thể đẩy hàng đợi trở lại mã và các thay đổi của bạn sẽ được áp dụng lại. Nó có thể mất một chút không quan trọng, nhưng đáng xem.

Để tham khảo:

Các vấn đề liên quan