0

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

帮助表示赞赏!谢谢你。

4

2 回答 2

3

在 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 位路径。在它周围加上双引号以确保路径中的空格不会造成痛苦。

于 2015-06-30T13:47:39.743 回答
0

Try $(ProgramFiles) instead %ProgramFiles%. I tried in VS2010 and it works. I suppose in VS2008 too. I normally use quotation, but I don't know if it is necessary.

于 2015-06-30T13:01:59.033 回答