【问题标题】:PostBuild in Visual Studio 2008 not working under Windows 7 or Windows 8.1Visual Studio 2008 中的 PostBuild 在 Windows 7 或 Windows 8.1 下无法运行
【发布时间】:2015-02-02 08:01:18
【问题描述】:

我在 Visual Studio 2008 中定义了一个构建后事件:

%ProgramFiles%\TortoiseHG\xy.exe

在 Windows 7 或 Windows 8.1 (x64) 下编译时,我收到以下错误消息:

Error   1   The command "%ProgramFiles%\TortoiseHG\xy.exe" exited with code 9009.   MyProjektName

程序在这里:

C:\Program Files\TortoiseHg

在 Windows XP (x86) 中它运行良好 - 我也尝试设置引号但没有帮助。有什么想法可能是错的吗?由于有两个程序路径(一个用于 x86,一个用于 x64),这是一个问题吗?但即使我将 xy.exe 复制到 C:\Program Files (x86)\TortoiseHg\,我也会遇到同样的错误。

感谢您的帮助!谢谢。

【问题讨论】:

    标签: windows visual-studio-2008 post-build-event post-build


    【解决方案1】:

    在 Windows 7 或 Windows 8.1 (x64) 下

    这当然是基本问题之一,Visual Studio 是一个 32 位进程。文件重定向器将启动并将任何访问从 c:\program files 重定向到 c:\program files (x86)。死在那里,你没有在那里安装 TortoiseHG。

    但不是你唯一的问题,重定向会产生错误代码 3,而不是 9009。所以你还没有走到这一步,9009 是当你启动的程序退出并出现错误代码时产生的一般故障代码。缺少双引号就足以触发它,程序本身也因任何原因而失败。在“输出”窗口中查看任何错误消息非常重要。

    从我们不知道的错误消息开始,您会更接近:

       %windir%\sysnative\cmd.exe /c "%programw6432%\TortoiseHG\xy.exe"
    

    这会启动 64 位命令处理器,从而确保文件系统重定向器不受干扰。 /c 选项要求它执行后面的命令然后退出。 %programw6432% 环境变量确保您将传递 c:\program 文件而不是 32 位路径。在它周围加上双引号,以确保路径中的空格不会造成痛苦。

    【讨论】:

    • 感谢您的帮助!您的提示使我找到了解决方案。
    【解决方案2】:

    尝试$(ProgramFiles) 而不是%ProgramFiles%。我在VS2010中尝试过,它可以工作。我想在VS2008中也是如此。我一般都是用引号,不知道有没有必要。

    【讨论】:

      猜你喜欢
      • 2011-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-29
      • 2013-11-20
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      相关资源
      最近更新 更多