【问题标题】:What path / environment variables are used when executing post build steps?执行构建后步骤时使用哪些路径/环境变量?
【发布时间】:2010-01-20 14:00:33
【问题描述】:

我正在尝试在 VS2008 项目中执行以下构建后步骤:

sn.exe **some arguments**

并继续得到错误

'sn.exe' 不是内部或外部命令、可运行程序或批处理文件。

执行后期构建步骤时使用什么路径/环境变量?我以为它等同于由 Visual Studio 命令提示符创建的环境,但显然情况并非如此。

确保我可以使用常用构建工具(例如 sn.exe)的最佳方法是什么

【问题讨论】:

  • 您可以通过在构建后步骤中执行 set 命令来了解这一点。

标签: visual-studio-2008 build


【解决方案1】:

在命令中指定 sn.exe 的完整路径。

例如,c:\winsdk\bin\sn.exe

如果您在 c:\winsdk 安装了 Windows SDK,则此方法有效。如果您在传统位置安装了 Windows SDK,那么您可以使用

"c:\Program Files\Microsoft SDKs\Windows\v6.1\Bin\sn.exe"

确保在该路径周围使用双引号,因为它包含空格,并检查/替换该版本号。

我使用junction.exe 工具在c:\winsdk 定义了一个连接点,指的是 "c:\Program Files\Microsoft SDKs\Windows\v6.1",这让我可以使用任何一种形式。

【讨论】:

  • 我真的想避免指定确切的路径 - 这个项目文件是在许多不同的机器上构建的,包括构建机器和开发机器 - 其中一些是 x64,其中一些是 x86,其中一些是 xp 一些其中包括 Windows 7 等......即使开发人员将 SDK 安装在稍微不同的位置(或安装不同版本的 SDK),构建也会中断。
  • @Kragen:解决这个问题的方法是使用所有机器都必须定义的环境变量 (%SNPATH%)。还有针对不同 VS 安装的预定义变量(例如 %VS90COMNTOOLS%)。
  • @Kragen - 然后,您必须建立一些约定来确定如何查找 sn.exe 的位置。 @sbi 建议的环境变量,或者 Windows SDK 的知名安装位置。
【解决方案2】:

您可以尝试运行 vcvarsall.bat 来设置环境变量。

【讨论】:

    猜你喜欢
    • 2015-07-09
    • 2018-04-04
    • 2020-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    相关资源
    最近更新 更多