Clickonce“copy if newer”总是下载文件

时间:2012-07-16 19:55:43

标签: .net deployment clickonce

我的clickonce App有一个.ini文件(来自3方dll的配置),必须包含在应用程序根目录中。 我将文件添加为链接并标记为“内容”和“复制如果更新”。 问题是每次部署更新时,都会再次下载该文件,覆盖所有更改。

为什么clickonce不尊重“copy if newer”?

1 个答案:

答案 0 :(得分:1)

  

为什么clickonce不尊重“复制如果更新”?

因为编译器在复制到bin时(或者编译二进制文件时)使用了它。此设置与clickonce无关。

我建议将INI重命名为“base.ini”,或者等效的。当您的应用程序启动时,将其复制到具有新名称的新文件中,并且仅当它已经不存在时才会复制。像这样:

if (!File.Exists("yourinifile.ini"))
{
    File.Copy("base.ini", "yourinifile.ini");
}

修改

您可以将文件标记为ClickOnce清单中的数据文件。为此,

  1. 打开项目的属性
  2. 选择“发布”标签
  3. 单击“应用程序文件...”按钮
  4. 在文件列表中找到您的INI文件,并将发布状态更改为“数据文件”。