ClickOnce在发布期间使用“obj”目录中的旧版本覆盖.exe.config

时间:2017-02-17 15:48:25

标签: c# clickonce

我正在开发一款旧的ClickOnce应用程序,该应用程序将在几年内首次更新。

正如标题所述,由于某种原因,ClickOnce发布会覆盖生成的ApplicationName.exe.config文件,其中包含位于项目的\ obj \子目录中的过期版本。

这引起了一些问题:

首先,在尝试安装ClickOnce时,该文件的哈希失败。我的假设是,Visual Studio正常生成.exe.config文件并为生成的版本生成哈希,但随后将此其他版本复制到顶部,从而打破哈希(项目中没有预生成或后期构建事件)。

其次,即使我在该文件上禁用散列,我对app.config所做的任何更改都不会使其发布到已发布的版本,因为该旧的\ obj \版本会覆盖该配置。如果我从\ obj \文件夹中删除该文件,当尝试运行ClickOnce设置时,它会告诉我它丢失了文件并中止。

我已经对整个项目目录进行了文本内容搜索,并且无法在任何地方找到任何提及此\ obj \ file的文件,但它必须存在,因为该错误可以在另一台PC上重现通过源控制。

我很困惑,因为我认为\ obj \文件夹只是用于VS的本地工作文件,我无法理解配置文件中为什么,如何或在哪里可以设置这样的东西。救命啊!

编辑:已尝试的其他内容:

  • 清洁项目
  • 在ClickOnce中发布到新位置
  • 擦除\ obj \目录(此配置文件除外)

0 个答案:

没有答案