Tôi khá chắc chắn rằng bạn có thể thêm phân phối lại vào gói bootstrapper mà Visual Studio tạo ra. This may help you out. Nhưng không, ClickOnce không thể phát hiện nếu nó đã được cài đặt.
Tôi nghĩ bạn có thể hiểu nhầm ClickOnce làm gì. ClickOnce sao chép các tập tin từ một máy chủ cho một khách hàng và giữ chúng trong đồng bộ. Đó là nó. Hầu hết các ứng dụng ClickOnce có một số điều kiện tiên quyết mà chúng cần để chạy (.NET Framework, Thời gian chạy C++, v.v.). Visual Studio sẽ giúp bạn với những điều này và tạo ra một bootstrapper mà bó tất cả những với nhau. Điều đó không có gì để làm với ClickOnce, nó chỉ là một số thứ họ ném vào VS để giúp bạn ra ngoài. Visual Studio cũng sẽ tạo một trang html cho bạn với các liên kết đến ứng dụng ClickOnce và exe bootstrapper; một lần nữa, chỉ Visual Studio giúp bạn, không phải ClickOnce.
Điều kiện tiên quyết duy nhất có một số "tính năng" phía sau đó là Khuôn khổ .NET. Đó là vì trang html được tạo ra có thể xem chuỗi UserAgent của trình duyệt và cho biết phiên bản nào của khung được cài đặt. Đối với tất cả điều kiện tiên quyết khác, bạn có thể viết mã để xử lý mọi thứ hoặc cho người dùng biết liệu họ có cần chạy cài đặt hay không.
Nếu ứng dụng của bạn có thể khởi động mà không có điều kiện tiên quyết, bạn có thể viết mã để kiểm tra xem nó đã được cài đặt chưa và sau đó cảnh báo người dùng hoặc tải xuống và khởi chạy quá trình cài đặt. Đó là về tốt như bạn có thể làm.
Lưu ý rằng [câu trả lời chỉ có liên kết] (http://meta.stackoverflow.com/tags/link-only-answers/info) không được khuyến khích, các câu trả lời SO phải là điểm cuối của tìm kiếm một giải pháp (so với một điểm dừng khác của tài liệu tham khảo, mà có xu hướng để có được cũ theo thời gian). Vui lòng xem xét thêm bản tóm tắt độc lập tại đây, giữ liên kết dưới dạng tham chiếu. – kleopatra