Msbuild 从非CPP项目访问$(VCToolsInstallDir)

Msbuild 从非CPP项目访问$(VCToolsInstallDir),msbuild,visual-studio-2017,wix,project-files,Msbuild,Visual Studio 2017,Wix,Project Files,我有一个WiX项目,需要调用editbin.exe来更改可执行文件的堆栈大小 我在VS2017工作,并在C:\Program Files(x86)\Microsoft Visual Studio\2017\Enterprise\VC\tools\MSVC\14.16.27023\bin\Hostx86\x86中安装了组件“VC++2017版本15.9 v14.16最新v141工具”和puts editbin 我还安装了“VisualC++工具用于CGUID”,当在“开发者命令提示符VS2017”

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

我在VS2017工作,并在C:\Program Files(x86)\Microsoft Visual Studio\2017\Enterprise\VC\tools\MSVC\14.16.27023\bin\Hostx86\x86中安装了组件“VC++2017版本15.9 v14.16最新v141工具”和puts editbin

我还安装了“VisualC++工具用于CGUID”,当在“开发者命令提示符VS2017”中键入“Engult%VCoToStRoStAldir %返回”C:\Script文件(x86)\微软Visual Studio \\\\\\\\\\\\VC\Too\MSVC\1416.21723”

但是当我在.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)导入项目?

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

好的,谢谢,我需要访问editbin.exe(从.wixproj或.csproj)如果不硬编码路径,最好的方法是什么?也许您可以在windows环境变量中为此路径创建宏
setx{name}“path”
我可以在cmd窗口中运行VSDevCmd.bat,它将vctoolsinsinstalldir作为环境变量加载。我只是想做这件事,也许能满足你的要求。