2009-10-11 119 views
2

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

关于如何与配置文件一起部署应用程序的任何想法? (并使其可写,因为TI的运行过程中的应用改变了配置值。)提前

+2

您是否尝试过“复制到输出目录”选项的文件? (VS中的属性窗口) – Restuta 2009-10-11 18:38:10

回答

2

配置文件应该自动发布;如果没有,确保它被配置为复制到输出,并且(如果失败)检查发布文件(项目属性 - >发布 - >应用程序文件;配置文件应该被标记为“包含(自动)”或“包含“)。

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

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

1

当你点击你的项目的属性并转到项目的属性的发布选项卡

谢谢,单击应用程序文件...然后选中“显示所有文件”复选框。你应该看到一个选项,从那里选择你的应用程序配置文件。

根据我的经验,< *> .exe.config文件通常设置为自动包含。

3

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

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