【问题标题】:Access $(VCToolsInstallDir) from a non CPP project从非 CPP 项目访问 $(VCToolsInstallDir)
【发布时间】:2021-08-21 00:32:24
【问题描述】:

我有一个 WiX 项目,需要调用 editbin.exe 来更改可执行文件的堆栈大小。

我在 VS2017 中工作,并且在 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\ 中安装了组件 "VC++ 2017 version 15.9 v14.16 latest v141 tools" MSVC\14.16.27023\bin\Hostx86\x86"。

我还安装了组件“Visual C++ tools for CMake”,当在“VS2017 的开发人员命令提示符”中输入“echo %VCToolsInstallDir% 返回”C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise \VC\Tools\MSVC\14.16.27023"

但是当我在 .wixprof 文件中使用它时,例如:

<Target Name="BeforeBuild">
    <Exec Command="call &quot;$(VCToolsInstallDir)bin\Hostx86\$(configuration)\editbin.exe&quot; /stack:5242880 &quot;<path to exe>&quot;" />
</Target>

它尝试使用路径“bin\Hostx86\x86\editbin.exe”

我错过了什么?如何让 $(VCToolsInstallDir) 进入项目?

【问题讨论】:

    标签: msbuild visual-studio-2017 wix project-files


    【解决方案1】:

    在使用$(VCToolsInstallDir)之前,您需要导入一些包含该宏定义的目标文件。但我不建议你这样做。这些文件相互依赖。这意味着您需要使 C++ 构建工具与 wix 构建工具兼容。这将是一件大事。

    【讨论】:

    • 好的,谢谢,我需要访问 editbin.exe(从 .wixproj 或从 .csproj)在不硬编码路径的情况下最好的方法是什么?
    • 也许你可以在windows环境变量中为这个路径创建一个宏。 setx {name} "path"
    • 我可以在 cmd 窗口中运行 VSDevCmd.bat 并将 VCToolsInstallDir 作为环境变量加载。我只想在 MSBuild 中执行此操作
    • 也许customized targets file 可以满足您的要求。
    猜你喜欢
    • 1970-01-01
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-18
    • 2017-05-20
    相关资源
    最近更新 更多