0

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

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

4

1 回答 1

1

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

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

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

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

编辑

您可以在 ClickOnce 清单中将文件标记为数据文件。去做这个,

  1. 打开项目的属性
  2. 选择“发布”选项卡
  3. 单击“应用程序文件...”按钮
  4. 在文件列表中找到您的 INI 文件,并将发布状态更改为“数据文件”。
于 2012-07-16T20:00:14.563 回答