2009-11-16 119 views
0

我一直在尝试修改我的应用程序以使用ClickOnce进行部署和更新。我已经设法让程序工作,但是我在程序配置上遇到了麻烦。我的程序使用位于应用程序目录中的自定义XML配置文件。这提出了两个主要问题。使用ClickOnce部署的配置文件

1.)配置文件很难找到。在没有关于ClickOnce如何工作的知识的情况下,用户将无法找到它。

2.)目前,如果我更改配置文件ClickOnce会自动将配置文件“更新”为原始版本,从而破坏我的配置。

理想情况下,我希望将配置文件移动到另一个位置,并在我的应用程序旁边创建一个开始菜单快捷方式。但是如果我改变程序来做到这一点,我仍然可以使用ClickOnce部署应用程序?

由于提前,

Fr33dan

回答

1

你为什么不把配置的副本中的用户应用程序数据文件夹(这可以在第一次运行完成) - 然后有一个按钮,你的打开它的应用程序(在外部还是在你的应用程序中)?

0

在这里可以做很多事情来缓解这个问题。

首先,使用已经存在的内容 - 配置数据包含两部分(请原谅我在内存中工作)应用程序配置和用户配置。应用程序配置基本上是在应用程序被下拉时定义的,但用户配置就是这样 - 您设置默认值,然后,一旦由应用程序代表用户设置,它将不会被覆盖,当应用程序已更新。

它应该足够简单以提供配置编辑器 - 只要双列网格就足够了,只读标签列和可编辑值列(尽管您在验证时会遇到一些挑战) 。

或者,如果您对更传统的配置感到高兴,那么您只需要1个用户值,那将是配置文件的位置......如果您不知道是否(或无法找到)文件)提示创建,将你的默认配置从你的应用程序中的资源转储到指定的位置,然后你已经有了你的配置文件并离开了你。

1

您可以随时将您的配置数据存储在应用程序设置中。这不会在每次ClickOnce更改或更新时被覆盖(除非您更改设置的类型)。然后您可以创建一个简单的表单来更新它。这是许多.NET开发人员用于屏幕保护程序的技术。

0

一个项目我的工作,我们所做的应用程序下载,从它的部署位置的服务器配置文件(这是在每次启动时完成,以处理应用程序是否被添加到开始菜单并缓存)。 ClickOnce API为您提供服务器地址。

在另一个项目中,我们只是将一些配置值作为查询字符串传递给ClickOnce应用程序,它们由具有指向应用程序链接的Asp.net页面生成。

这允许客户改变他们的网站上的配置,而不必辞职等
(这不会与每个用户的配置帮助)