ClickOnce配置部署 - 配置文件

时间:2009-10-11 18:34:17

标签: c# .net clickonce config

我正在使用ClickOnce部署应用程序,问题是配置文件(xxx.exe.config)没有嵌入到包中,并且没有选项可以包含它。配置的另一个问题是,当我试图手动将其写入其被删除的目录(Environment.CurrentDirectory)时,我得到一个异常 - 我没有权限这样做。

有关如何将应用程序与配置文件一起部署的任何想法? (并使其可写,因为ti运行时的应用程序会改变配置值。)

提前致谢

3 个答案:

答案 0 :(得分:5)

您还可以更改要包含在ClickOnce部署中的文件的构建操作:Properties for a file → Build Action → set to "Content",这会将文件添加到Application files项目选项中的Publish列表中。< / p>

如果您需要从引用的项目中发布文件,我找不到更好的解决方案而不是Add → Existing Item → On "Add" button, select "Add as Link",然后将操作设置为Content并检查已发布文件的列表

答案 1 :(得分:2)

配置文件应自动发布;如果没有,请确保将其配置为复制到输出,并且(如果失败)检查发布文件(项目属性 - &gt;发布 - &gt;应用程序文件;配置文件应标记为“include(auto)”或“包括”)。

您不应尝试更新应用安装目录中的任何内容。这是一个坏主意一般(因为你不能假设你可以更新“程序文件”,除非你是管理员),但ClickOnce也是如此。

只需使用一些用户设置创建设置文件;这些将保存在用户的配置文件中,因此可以可靠地更新。您无法编辑通过ClickOnce部署的文件;即使您有访问权限,它也会(默认情况下)中断散列函数,并且会拒绝加载它们。你可以关闭散列,但是......这仍然不是一个好主意。

答案 2 :(得分:1)

当您单击项目的属性并转到项目属性的“发布”选项卡时,单击“应用程序文件...”,然后选中“显示所有文件”复选框。您应该看到从那里选择应用程序配置文件的选项。

根据我的经验,&lt; *&gt; .exe.config文件通常设置为自动包含。