gpt4 book ai didi

.net - 在任何浏览器中将 URL 参数传递给 ClickOnce 应用程序

转载 作者:行者123 更新时间:2023-12-04 01:00:52 25 4
gpt4 key购买 nike

我有一个 ClickOnce 应用程序,我需要能够将 URL 参数传递给它。例如,用户可以单击“http://foo.bar/MyApp.application?flavor=grape”形式的 URL,这将启动我的应用程序,并将“?flavor=grape”查询传递给它。

不幸的是,这似乎只适用于开箱即用的 IE。在 Firefox 和 Chrome 上,用户必须安装附加组件才能使 ClickOnce 部署工作。我的用户在限制性的公司环境中工作,不允许安装任何附加组件或其他任何东西(不过,ClickOnce 确实适合他们)。那么,我该怎么办?

我能想到的一个技巧是将我的应用程序注册为某个足够独特的文件扩展名的文件处理程序,例如 ".bugmaster"。然后——或者我的理论是这样——我可以让我的网络服务器生成一个名为“flavor_grape.bugmaster”的文件;用户将单击指向该文件的 URL,然后选择“运行”而不是“保存”,这将启动我的应用程序,然后应用程序将解析 URL 参数的文件名。不幸的是,这种方法也不起作用。当从本地文件系统打开“flavor_grape.bugmaster”文件时,它工作得很好,但由于某种原因,当用户尝试从浏览器打开文件时,这不起作用。

有没有人有其他想法?

最佳答案

ClickOnce 有一个漂亮的小技巧,您可以将参数直接编码到 setup.exe 使用的 URL 中。例如,要创建一个包含“flavor=grape”参数的 setup.exe,您可以从命令行运行以下命令:

copy setup.exe setup-for-grape.exe
setup.exe -url="http://foo.bar/MyApp.application?flavor=grape" /dest=setup-for-grape.exe

这使用未记录的/dest 标志将结果输出到 setup-for-grape.exe 文件,而不是修改原始 setup.exe。执行此操作后,setup-for-grape.exe 将指向您的 URL 并包含您的 flavor=grape 参数。请注意,如果您使用签名,则需要对 setup.exe 的未签名副本执行此操作,然后再对其进行签名,因为它会破坏签名。

如果可能的参数选择数量相当有限,您只需为它们全部生成 setup.exe 并从您的网站链接到它们。

另一方面,如果有无限数量的选择,您可以设置一个 web 服务,它接受一些参数,生成一个带有所需参数的 setup.exe,并将其吐回给客户端。我已使用此方法为连接到特定服务器的客户端生成 setup.exe - 客户端安装 URL 将服务器连接信息编码在其中,因此当安装客户端时,它会自动知道要连接到哪个服务器。

当然,如果您不想使用 setup.exe,或者您的限制性公司环境不允许它,所有这些都会直接消失。但希望你会发现它很有用,或者至少是有用的。

关于.net - 在任何浏览器中将 URL 参数传递给 ClickOnce 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11006112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com