.net Clickonce";如果较新,请复制“;总是下载文件

.net Clickonce";如果较新,请复制“;总是下载文件,.net,deployment,clickonce,.net,Deployment,Clickonce,我的clickonce应用程序有一个.ini文件(来自三方dll的配置),该文件必须包含在应用程序根目录中。 我将文件添加为链接,并标记为“内容”和“更新时复制”。 问题是,每次部署更新时,单击“一次下载”将再次覆盖所有更改 为什么clickonce不尊重“如果更新,则复制” 为什么clickonce不尊重“更新时复制” 因为编译器在复制到bin(或二进制文件编译到的任何位置)时都会使用它。此设置与clickonce无关 我建议将您的INI重命名为“base.INI”或类似名称。当应用程序启动时

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

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

为什么clickonce不尊重“更新时复制”

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

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

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

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

  • 打开项目的属性
  • 选择“发布”选项卡
  • 单击“应用程序文件…”按钮
  • 在文件列表中找到INI文件,并将发布状态更改为“数据文件”

  • 所以,只有更新的文件才能下载?我很吝啬,出局了box@Alexandre我做了一次编辑,可能会提供一个现成的解决方案。问题是第三方dll需要同一目录中的ini文件