ClickOnce – 无法发布,因为项目无法构建

当我尝试发布我的(WPF,C#)应用程序时,我收到以下错误:
无法发布,因为项目无法构建。
找不到文件’obj \ x86 \ Debug \ MyAPP.exe’
无论发布在哪里,我都会收到这些错误:发布向导,构建菜单或右键单击项目 – 发布。
首先它工作正常,但我做了以下事情:
我将计算机的日期更改为10/10/2013,我正在尝试别的东西。
我忘了这个,然后点击构建。 然后我在电脑上设置了正确的日期。 之后我得到了这些错误。
每次我单击运行Visual Studio构建项目是否有项目更改。
我也注意到,当我在2013年10月10日之后设置日期时,它可以正常工作。
我猜我正在寻找我的项目中设置此日期的一些设置。
我尝试了构建,重建,清洁解决方案。

这是安装了加载项时可能出现的Visual Studio问题。 不使用“发布”选项卡中的“发布”按钮,而是使用Visual Studio顶部菜单中的“生成/发布”。

如果您使用“发布”按钮,它会在执行构建之前运行加载项(或类似的东西)。 如果您使用菜单中的Build,它会直接进入msbuild并忽略您安装的任何加载项。

如果您安装了DevExpress但仍有问题,请查看以下文章: http : //www.devexpress.com/Support/Center/p/Q260132.aspx

在日期恢复正常后,关闭VS并尝试删除* .sln文件旁边的* .suo文件,然后重新打开解决方案

我不确定你的开发机器究竟是如何被这种方式搞砸的,但这也开始发生在我们小组的几个开发人员身上。

在研究它之后,看起来Visual Studio(在我们的例子中是2010)使用的内置构建/发布脚本在它执行操作的顺序中存在缺陷。 最重要的是,它会在OBJ目录上运行清理,删除目标EXE文件,然后发布步骤才能获取它。

解决方案
这有点像一个hacky解决方法,但它解决了我的问题。

修复方法是在发布步骤之前将文件从/bin/文件夹复制回/obj/文件夹。 遗憾的是,我无法通过IDE指定BeforePublish事件,因此您必须在文本编辑器中编辑.vbproj文件。

在最终的标记之前添加以下部分。

    

我解决了我的问题。 问题是某些文件的“修改”时间。 我使用程序Timestamp来修复它。

正如我在我的问题中所说的那样,问题在于我构建了解决方案并且日期是在未来。 因此,每次我按下F5 Visual Studio都会再次构建整个解决方案而Publish ClickOnce无效。

如果没有其他工作,请试试这个:

  1. 将您的日期设置为正确的日期。
  2. 关闭VS后,删除解决方案的所有bin和obj文件夹。
  3. 创建一个新的空解决方案。
  4. 将现有项目添加到解决方案中。
  5. 添加所需的引用。
  6. 重建,以确保你没有错过任何东西。
  7. 发布。

如果您愿意,您也可以尝试之前的步骤1,2,6,7,如果您不想制作新的解决方案。

只需创建一个新的ClickOnce清单证书,它就会再次运行。

我有时遇到ASP.NET项目发布问题,因为发布向导无法删除尝试将文件发布到的目录中的文件。

尝试在发布之前手动清除这些文件。 还要检查输出窗口; 它有时会给你一些提示,说明发布失败的原因。

我今天遇到了这个问题。 在我的特定情况下,它是由Microsoft Windows Update , Microsoft安全通报2661254 (关于最小证书密钥长度)引起的。

我卸载了更新和发布开始按原样运行。 这只是一个临时工作,意味着你应该重新生成你的密钥/证书。

当我交换git分支时,我遇到了这个错误。 A Rebuild All为我解决了这个问题。

在我的情况下,当我在.csproj文件中添加以下部分时出现问题:

   

关闭和打开Visual Studio为我工作。