【问题标题】:ClickOnce - Cannot publish because a project failed to buildClickOnce - 无法发布,因为项目未能构建
【发布时间】:2011-10-23 20:55:03
【问题描述】:

当我尝试发布我的(WPF、C#)应用程序时,我收到以下错误:
无法发布,因为项目未能构建。
找不到文件 'obj\x86\Debug\MyAPP.exe'

无论我从哪里发布,我都会收到这些错误:发布向导、构建菜单或右键单击项目 - 发布。
首先它工作正常,但我做了以下事情:
我将计算机上的日期更改为 2013 年 10 月 10 日,我正在尝试其他方法。
我忘记了这一点,然后单击构建。然后我在电脑上设置了正确的日期。之后我收到这些错误。
另外每次我点击运行 Visual Studio 构建项目时,项目是否有变化。
我还注意到,当我在 2013 年 10 月 10 日之后设置日期时,它可以正常工作。
我猜我正在我的项目中寻找一些设置这个构建日期的设置。
我尝试构建、重建、清理解决方案。

【问题讨论】:

  • 那么你为什么不清理和重建你的解决方案呢?
  • 我做了,还是不行。

标签: c# wpf visual-studio-2010 clickonce


【解决方案1】:

这是安装插件时可能出现的 Visual Studio 问题。不要使用“发布”选项卡中的“发布”按钮,而是使用 Visual Studio 顶部菜单中的“构建/发布”。

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

如果您安装了 DevExpress,但仍然遇到问题,请查看这篇文章: http://www.devexpress.com/Support/Center/p/Q260132.aspx

【讨论】:

  • 谢谢!这仅发生在我的机器上。采纳了您的建议并能够发布。
  • 是的,正如您所解释的那样。谢谢你。现在可以了。
  • 我设法逃脱了在安全模式下运行或卸载加载项.. 救命稻草!
  • 非常感谢。自上次更新以来已经很长时间了,我想知道我的开发环境出了什么问题。
  • 我最近安装了 SiteCore、Resharper 插件,其中一个组件就是罪魁祸首。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    我不确定您的开发机器是如何被这种方式弄脏的,但是我们小组中的一些开发人员也开始发生这种情况。

    经过研究,Visual Studio(在我们的案例中为 2010 年)使用的内置构建/发布脚本似乎在其执行顺序方面存在缺陷。最重要的是,它会在发布步骤抓取目标 EXE 文件之前对 OBJ 目录进行清理。

    解决方案
    这是一个有点老套的解决方法,但它为我解决了这个问题。

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

    在最后的 </project> 标记之前添加以下部分。

    <Target Name="BeforePublish">
    <Copy SourceFiles="$(TargetPath)" DestinationFolder="$(IntermediateOutputPath)" />
    </Target> 
    

    【讨论】:

      【解决方案4】:

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

      正如我在问题中所说,问题在于我构建了解决方案并且日期在未来。因此,每次我按 F5 时,Visual Studio 都会再次构建整个解决方案,而 Publish ClickOnce 无法正常工作。

      【讨论】:

      • 这对我也有用。我已经把我的机器时钟提前测试了一些东西,然后在当天晚些时候无法发布我的 clickonce 应用程序。吸取的教训是,在将时钟拨快时,只有在构建应用程序后才这样做,然后在再次构建之前将时钟拨回。
      【解决方案5】:

      如果没有其他效果,试试这个:

      1. 将日期设置为正确的日期。
      2. 关闭 VS 后,删除解决方案的所有 bin 和 obj 文件夹。
      3. 创建一个新的空解决方案。
      4. 将现有项目添加到解决方案中。
      5. 添加回所需的参考资料。
      6. 重建以确保您没有遗漏任何内容。
      7. 发布。

      如果您不想制定新的解决方案,也可以在之前尝试第 1、2、6、7 步。

      【讨论】:

        【解决方案6】:

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

        【讨论】:

        • 哦,我多么希望这在答案列表中更高。我会节省几个小时不必要的头撞。
        【解决方案7】:

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

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

        【讨论】:

          【解决方案8】:

          我今天刚遇到这个问题。在我的特殊情况下,它是由 Microsoft Windows UpdateMicrosoft Security Advisory 2661254 引起的(关于最小证书密钥长度)。

          我卸载了该更新并开始像往常一样发布。这只是临时解决方法,意味着您可能应该重新生成密钥/证书。

          【讨论】:

            【解决方案9】:

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

            【讨论】:

              【解决方案10】:

              就我而言,当我在 .csproj 文件中添加以下部分时出现问题:

              <Target Name="AfterBuild">
              </Target>
              

              【讨论】:

                【解决方案11】:

                关闭和打开 Visual Studio 对我有用。

                【讨论】:

                  猜你喜欢
                  • 2016-12-12
                  • 1970-01-01
                  • 2018-06-14
                  • 2019-08-16
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2012-03-09
                  相关资源
                  最近更新 更多