我想将编译器的版本添加到自动生成的发行说明文件中。
目前,这就是我所拥有的:
echo "compiler version:" >>Release_Note.txt
MSBuild.exe -version >>Release_Note.txt
"echo "END." >>Release_Note.txt
启动此构建后事件时,失败并出现错误 9009,很可能是因为找不到文件
MSBuild.exe
。
在查看可能的宏时,唯一与“编程环境”相关的宏是
DevEnvDir
,在我的计算机上等于C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\
。
快速搜索告诉我,我的电脑上有两个文件
MSBuild.exe
,位于以下目录中:
这两个目录都不是上述
DevEnvDir
宏的子文件夹,所以我对使用它们犹豫不决。
是否有一个
$Compiler.exe
构建后事件宏,我可以用它来启动 MSBuild.exe -version
命令?
MsBuild --version
返回MsBuild的版本,它(或多或少)与Visual Studio版本相关。这不是使用的 dotnet (C#) 编译器的版本。要获取构建期间使用的 .NET 版本,请使用 dotnet --version
(这将依次报告 global.json
中指定的版本(如果存在)。
要调用
dotnet
,您不必在神奇路径中搜索,因为默认路径中提供了该路径。
看起来你的想法没有问题,我认为9009来自于msbuild认为'>>Release_Note.txt'是msbuild命令的一部分,所以整个句子被识别为路径
你想要的宏应该是$(MSBuildBinPath)
C++项目将能够找到所有宏,其他项目没有此接口。
看看这个: