2010-02-18 29 views
10

Có thể thêm/thay đổi tệp .application (hoặc cách khác) của tệp ClickOnce triển khai để cho phép các thông số được chỉ định mà không cần các thông số được truyền qua URL không?Các tham số trong ClickOnce

Việc lắp ráp có thể được biên soạn vào thời gian chạy/ký lại/etc, hoặc được nêu khác, tôi không lo lắng về các giới hạn của "những gì khác" tôi sẽ phải làm.

Trả lời

0

Không, tôi không nghĩ rằng điều này có thể được thực hiện. Bạn có thể xem xét việc đặt các tham số trong tệp app.exe.config và đọc chúng với lớp System.Configuration.ConfigurationManager trong ứng dụng của bạn.

Bạn có thể sử dụng công cụ SDK mageui để ký lại đơn đăng ký và triển khai khi bạn đã thay đổi nội dung của tệp .config.

+0

Nó chắc chắn có thể được thực hiện. http://robindotnet.wordpress.com/2010/03/21/how-to-pass-arguments-to-an-offline-clickonce-application/ – RobinDotNet

0

Hãy xem hai liên kết này để phân tích kỹ lưỡng về những gì và cách bạn có thể giao tiếp giữa trang web mà từ đó bạn khởi chạy ứng dụng nhấp chuột và chính ứng dụng đó.

Kỹ thuật cơ bản là để tự động thay đổi các file manifest (s) trên máy chủ web mà từ đó các ứng dụng được đưa ra, (và nhớ rằng các tập tin manifest cần được ký lại sau khi chúng được thay đổi).

Mặc dù, nó vẫn không cho phép bạn chuyển "tham số", bạn có thể mô phỏng "tham số" bằng cách bao gồm tệp cấu hình bổ sung mà ứng dụng của bạn có thể đọc khi khởi động.

2

Tôi đã đặt câu hỏi này cho nhóm sản phẩm ClickOnce vào tháng trước và họ đã nói rằng có thể được thực hiện. Giả sử bạn đang nhắm mục tiêu .NET 3.5 SP-1, bạn có thể chuyển đối số vào tệp appref-ms (lối tắt trên menu bắt đầu).

MyApp.appref-ms "my arguments"

Sau đó, bạn có thể lấy chúng bằng cách sử này:

string[] activationData = AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData; 
+1

Tôi đã viết một bài đăng trên blog, hoàn chỉnh với các mẫu mã, để hiển thị chính xác cách thực hiện việc này, trong trường hợp nó hữu ích cho bạn và những người khác. http://robindotnet.wordpress.com/2010/03/21/how-to-pass-arguments-to-an-offline-clickonce-application/ – RobinDotNet

0

cách tiếp cận khác có thể là để nạp những gì đã từng thông số/cấu hình bạn cần thông qua một cuộc gọi dịch vụ web (hoặc tương tự) khi ứng dụng bắt đầu lên.

Bằng cách đó bạn có thể điều khiển tập trung các thông số, thay vì để chúng được nhúng trong ứng dụng.

Bạn luôn có thể triển khai một số loại bộ nhớ đệm cục bộ nếu bạn không muốn nhấn hiệu suất của cuộc gọi dịch vụ web mỗi khi bạn khởi chạy ứng dụng.

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