Clickonce 单击一次部署并在安装后更改配置文件

Clickonce 单击一次部署并在安装后更改配置文件,clickonce,Clickonce,我们正在考虑使用ClickOnce进行部署。我不确定使用ClickOnce是否可以轻松实现这一点。我们创建ClickOnce安装程序并分发给客户端,每个客户端将把ClickOnce安装程序放在自己的网络上。客户端的每个用户都将从其本地网络运行它 应用程序在配置文件中有一些设置。每个客户端都有自己的设置(客户端下的所有用户都将使用相同的设置)。我的理解是,一旦创建了ClickOnce包,客户端就无法更改配置文件来设置自己的设置,或者ClickOnce必须重新签名 我的理解正确吗?有解决办法吗?应用

我们正在考虑使用ClickOnce进行部署。我不确定使用ClickOnce是否可以轻松实现这一点。我们创建ClickOnce安装程序并分发给客户端,每个客户端将把ClickOnce安装程序放在自己的网络上。客户端的每个用户都将从其本地网络运行它

应用程序在配置文件中有一些设置。每个客户端都有自己的设置(客户端下的所有用户都将使用相同的设置)。我的理解是,一旦创建了ClickOnce包,客户端就无法更改配置文件来设置自己的设置,或者ClickOnce必须重新签名


我的理解正确吗?有解决办法吗?应用程序能否访问ClickOnce清单中未包含的文件的更新位置?

如果您的目标是3.5框架,则不必签署ClickOnce部署。确保在项目属性的“签名”选项卡上未选中“为ClickOnce清单签名”。这将允许您在创建部署后编辑.application文件。更改deploymentProvider标记的codebase属性…

但这并不能解决应用程序设置问题。如果编辑要部署的文件,则必须重新生成该文件的哈希

您知道客户端设置需要是什么吗?如果是这样的话,也许您可以为每个客户机提供单独的配置文件,并使用预构建事件来复制配置文件

设置是否必须在客户端配置文件中?您可以将设置存储在服务器上,并通过url参数传递它,或者在应用程序启动后通过web服务调用获取它吗


如果这些东西不起作用,您可以为您的客户提供一个简单的脚本(可能使用),以便他们可以在编辑部署后重新生成和放弃清单(使用他们自己的证书)。

我们公司正在使用ClickOnce,我必须根据发布一个包。但是,在您的情况下,您可以始终使用一个名称发布,并告诉您的客户端在其网络上使用相同的DNS名称,并且该名称应始终有效。

还有一个不是很好的解决方案


您可以将配置文件放置到不同的“可选组”中,并通过手动使用下载特定配置。但是,对我来说,这并不是一个完美的解决方案。

你可能会发现我最近在网上发布的博客很有用。考虑到每个客户端都有自己的“环境”,允许您单独指定它们各自的配置。

如果使用这种方法,仍然可以对部署进行“签名”


祝你好运

谢谢。如果一个文件(如配置文件或自定义文件)未包含在散列中,会发生什么情况?将对部署的每个文件进行散列。散列都存储在.manifest文件中。对于散列文件,您没有选择,这是单击一次的工作方式。这是一种安全措施,可以防止部署被篡改with@codeConcussion你知道吗,如果有什么改变了,那就是2015年了。最近有没有其他方法可以通过新版的网络框架实现这一点?@JAT AFAIK,ClickOnce最近几乎没有任何变化。它已经相当成熟了,我看不到任何时候很快会有重大的大修或功能。但我可能错过了什么。总的来说,ClickOnce就是这样。它并不完美,但如果你能接受它的缺点,这是部署需要频繁更新的应用程序的好方法。那么客户端是否使用相同的dns名称,以及通过URL参数传递的设置?