【问题标题】:Post build visual studio step not being called at all构建后的视觉工作室步骤根本没有被调用
【发布时间】:2008-11-13 23:26:53
【问题描述】:

主要是我在 Visual Studio 中构建了一个安装程序,当我尝试使用该程序时,它给了我这个令人愉快的错误:

检索 COM 类工厂 具有 CLSID 的组件 {EC10E7E8-797E-4495-A86D-3E9EADA6D5BB} 由于以下错误而失败: 80040154.

看来我需要将清单嵌入可执行文件中,为此我应该将以下内容添加为构建后事件:

"$(DevEnvDir)....\VC\bin\mt.exe" -manifest "$(ProjectDir)$(TargetName).exe.manifest" --outputresource:"$(TargetDir)$(TargetFileName)";#1

好吧,当我这样做并构建解决方案时,根本不会调用事件。事实上,我可以将任何旧的随机文本放入 pre 和 post 事件中,并且不会出现错误,也看不到任何被调用的内容。

我应该做些不同的事情来完成这项工作吗?

附加信息:

我正在从 IDE 构建。当我将构建类型切换为调试和发布时,我仍然在构建后事件中使用正确的命令。

有没有办法查看它在做什么的日志?

【问题讨论】:

    标签: c# visual-studio


    【解决方案1】:

    Tool + Options,Project and Solutions,Build and Run,将“MSBuild project build output verbosity”设置为Detailed。您将在“输出”窗口中获得大量诊断信息。

    FWIW,您收到的错误消息是一个简单的“类未注册”错误。用 Regsvr32.exe 修复

    【讨论】:

      【解决方案2】:

      两个猜测:

      • 构建不成功
      • 您的构建后/预构建事件是在未构建的项目配置中定义的,就像您在“调试”构建中定义事件但正在构建“发布”构建一样。

      您是从命令行还是类似的方式构建解决方案?

      【讨论】:

        【解决方案3】:

        这是有效的。您显然不需要将清单烘焙到程序中。将清单包含到 msi 包中就足够了,还包含依赖检查器遗漏的 DLL。

        就像大多数事情一样,一旦你知道就这么简单:-)

        我不知道为什么不调用后期构建步骤,但真正的问题已经解决了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-11-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-18
          相关资源
          最近更新 更多