有没有一种方法可以在 Visual Studio 2019 中从 Microsoft C++ 工具集中引用 link.exe 而无需对路径进行硬编码?
Is there a way to reference link.exe from Microsoft C++ toolset in Visual Studio 2019 without hardcode the path?
我在 Visual Studio 2019 年的一个 c# 项目的预构建事件中使用 Microsoft C++ 工具集的 link.exe。
问题是每次Visual Studio 2019更新时,都会因为MSVC文件夹的版本而改变路径。
例如:
在 VS 16.2.0 中,link.exe 的路径从 ..\14.21.27702... 更改为 ..\14.22.27905..
我搜索环境变量但找不到。
我的完整命令行:
C:\Program Files (x86)\Microsoft Visual Studio19\Community\VC\Tools\MSVC.21.27702\bin\Hostx86\x86\link.exe" /MACHINE:x86 /VERBOSE /NOENTRY /DLL /OUT:"$(ProjectDir)$(OutDir)$(TargetName).ribbon.dll" "$(ProjectDir)RibbonMarkup.res")
我希望能够参考 link.exe 而没有这个容易出错的路径。
有没有办法在我的预构建事件中不对它进行硬编码的情况下获取到 link.exe 的路径?
阅读更多有关 MSVC 中的环境变量的信息后 here, and here
我在 "Tools-> Command Line-> Developer Command Prompt" 中 运行 命令 "SET" 并找到了 "VCToolsInstallDir" 和我想要的路径。
但是在预编译事件中,这个环境变量没有设置值。
所以我执行了:
调用“$(DevEnvDir)....\VC\Auxiliary\Build\vcvars32.bat”
设置 "VCToolsInstallDir" 值。
最后,我的预构建事件是这样的:
call "$(DevEnvDir)..\..\VC\Auxiliary\Build\vcvars32.bat"
"%VCToolsInstallDir%\bin\Hostx86\x86\link.exe" /MACHINE:x86 /VERBOSE /NOENTRY /DLL /OUT:"$(ProjectDir)$(OutDir)$(TargetName).ribbon.dll" "$(ProjectDir)RibbonMarkup.res"
我在 Visual Studio 2019 年的一个 c# 项目的预构建事件中使用 Microsoft C++ 工具集的 link.exe。
问题是每次Visual Studio 2019更新时,都会因为MSVC文件夹的版本而改变路径。
例如: 在 VS 16.2.0 中,link.exe 的路径从 ..\14.21.27702... 更改为 ..\14.22.27905..
我搜索环境变量但找不到。
我的完整命令行:
C:\Program Files (x86)\Microsoft Visual Studio19\Community\VC\Tools\MSVC.21.27702\bin\Hostx86\x86\link.exe" /MACHINE:x86 /VERBOSE /NOENTRY /DLL /OUT:"$(ProjectDir)$(OutDir)$(TargetName).ribbon.dll" "$(ProjectDir)RibbonMarkup.res")
我希望能够参考 link.exe 而没有这个容易出错的路径。
有没有办法在我的预构建事件中不对它进行硬编码的情况下获取到 link.exe 的路径?
阅读更多有关 MSVC 中的环境变量的信息后 here, and here
我在 "Tools-> Command Line-> Developer Command Prompt" 中 运行 命令 "SET" 并找到了 "VCToolsInstallDir" 和我想要的路径。
但是在预编译事件中,这个环境变量没有设置值。
所以我执行了: 调用“$(DevEnvDir)....\VC\Auxiliary\Build\vcvars32.bat” 设置 "VCToolsInstallDir" 值。
最后,我的预构建事件是这样的:
call "$(DevEnvDir)..\..\VC\Auxiliary\Build\vcvars32.bat"
"%VCToolsInstallDir%\bin\Hostx86\x86\link.exe" /MACHINE:x86 /VERBOSE /NOENTRY /DLL /OUT:"$(ProjectDir)$(OutDir)$(TargetName).ribbon.dll" "$(ProjectDir)RibbonMarkup.res"