ClickOnce中的参数

时间:2010-02-18 10:16:06

标签: .net clickonce

是否有可能以任何可能的方式添加/更改ClickOnce部署文件的.application文件(或其他方式),以允许指定参数,而无需通过URL传递参数?

程序集可以在运行时编译/重新签名/等,或者另有说明,我不担心“我还有什么”的界限。

4 个答案:

答案 0 :(得分:2)

上个月我向ClickOnce产品团队提出了这个问题,他们说可以完成。假设您的目标是.NET 3.5 SP-1,您可以将参数传递给appref-ms文件(开始菜单上的快捷方式)。

MyApp.appref-ms "my arguments"

然后你可以使用它来检索它们:

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

答案 1 :(得分:0)

不,我不认为这可以做到。您可以考虑将参数放在app.exe.config文件中,并使用应用程序中的System.Configuration.ConfigurationManager类读取它们。

更改.config文件的内容后,您可以使用mageui SDK工具重新签名应用程序和部署清单。

答案 2 :(得分:0)

请查看这两个链接,深入分析您启动clickonce应用程序的网站与应用程序本身之间的通信内容和方式。

基本技术是动态修改启动应用程序的Web服务器上的清单文件(并记住这些清单文件在更改后需要重新签名)。

虽然它仍然不允许您传递“参数”本身,但您可以通过动态地包含应用程序在启动时可以读取的其他配置文件来模拟“参数”。

答案 3 :(得分:0)

另一种方法可能是在应用程序启动时通过Web服务调用(或类似)加载您需要的参数/配置。

通过这种方式,您可以集中控制参数,而不是将它们嵌入到应用程序中。

如果您不希望每次启动应用程序时都能获得Web服务调用的性能,则可以始终实现某种本地缓存。