2010-02-16 13 views
5

Tôi đang sử dụng VS2008 để xuất bản các tệp ứng dụng của mình bằng cách sử dụng ClickOnce. Tôi đọc ở đâu đó mà ClickOnce thông minh chỉ cập nhật từng phần; nghĩa là nó chỉ tải xuống các tệp từ mạng chia sẻ nếu tệp đã thay đổi trong các bản cập nhật tiếp theo. Tuy nhiên, điều này không hiệu quả với tôi. Vì vậy, tôi đã làm một số nghiên cứu và stumbled khi bài viết MSDN này - http://msdn.microsoft.com/en-us/library/ms404267.aspx. Nó nói rằng nếu chúng ta xây dựng bằng cách sử dụng VS, nó không thực hiện các cập nhật một phần. Bất cứ ai có thể cho tôi biết lý do tại sao đây là trường hợp? Nếu vậy, có cách nào để ít nhất là để các dll được tham chiếu chỉ được tải xuống lần đầu tiên. Tôi đang sử dụng Thư viện Doanh nghiệp Thực hành của Microsoft và một số kiểm soát của bên thứ ba (với các tệp Chủ đề lớn).Cập nhật một phần ứng dụng trong ClickOnce bằng cách sử dụng Visual Studio build

Cảm ơn, Uniball

Trả lời

7

cập nhật một phần hoạt động tốt trong ClickOnce thậm chí khi xây dựng trong VS. Tuy nhiên, nếu bạn có một giải pháp được tạo thành từ một vài dự án (ví dụ như một vài dự án thư viện lớp và một tệp thực thi) thì bất cứ lúc nào bạn xây dựng lại tất cả các dự án, dấu thời gian trên các tệp assembly sẽ thay đổi, ngay cả khi mã không có. Vì ClickOnce thực sự chỉ nhìn vào các dấu thời gian để quyết định xem một tập tin có cần cập nhật hay không, nó sẽ kéo các hội đồng (không thay đổi) thành các tệp mới khi người dùng cập nhật.

Giải pháp thay thế là kéo bất kỳ dự án phụ thuộc nào ra khỏi tệp giải pháp thi hành của bạn và tạo chúng riêng biệt. Điều đó có nghĩa là bất kỳ hội đồng nào có mã không thay đổi thường xuyên sẽ chỉ bị kéo xuống khách hàng một lần. Nếu bạn cần thay đổi assembly, bạn chỉ cần mở giải pháp của nó và thực hiện thay đổi, sau đó mở lại giải pháp thực thi của bạn và xây dựng lại nó. Bản cập nhật ClickOnce tiếp theo sẽ kéo xuống cả exe và assembly đã thay đổi.

Hy vọng điều đó đủ rõ ràng!

+0

Cảm ơn! Điều đó dọn sạch mọi thứ. – user274816

+0

Nếu bạn thử điều này và tìm thấy nó vẫn đang tải về của dll, mạnh mẽ tên họ. Tôi nghĩ rằng họ phải được đặt tên mạnh mẽ để ClickOnce KHÔNG tải xuống chúng, ngay cả khi các phiên bản không thay đổi. – RobinDotNet

+0

Đối với ứng dụng của chúng tôi, chúng tôi đã phải thiết lập ứng dụng cờ-tin tưởng đầy đủ trong các thiết lập dự án cho cập nhật dll một phần quá, không chỉ đặt tên mạnh mẽ – VMAtm