Visual Studio 2008 中的 PostBuild 在 Windows 7 或 Windows 8.1 下不工作

PostBuild in Visual Studio 2008 not working under Windows 7 or Windows 8.1

我在 Visual Studio 2008 年定义了一个 post-build-event:

%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\,我也会遇到同样的错误。

感谢帮助!谢谢。

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

under Windows 7 or Windows 8.1 (x64)

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

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

除了我们不知道的错误消息之外,您可以更接近:

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

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