我正在使用ClickOnce部署应用程序,问题是配置文件(xxx.exe.config)没有嵌入到包中,并且没有选项可以包含它。配置的另一个问题是,当我试图手动将其写入其被删除的目录(Environment.CurrentDirectory)时,我得到一个异常 - 我没有权限这样做。
有关如何将应用程序与配置文件一起部署的任何想法? (并使其可写,因为ti运行时的应用程序会改变配置值。)
提前致谢
答案 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文件通常设置为自动包含。