如何修改MSBuild命令将VS2019项目CompileAs设为TC?
解决VS2019 MSBuild强制设置编译模式为TC的问题
一、修正MSBuild命令参数
你之前使用的/p:CompileAs=CompileAsC未生效,是因为VS2019的MSBuild对CompileAs属性的有效值更认可数值而非枚举名称:
- TC(C代码编译)对应数值
1 - TP(C++代码编译)对应数值
0
正确的构建命令应为:
msbuild name.vcxproj /t:build /p:Platform=Win32 /p:CompileAs=1
执行后可以通过查看构建日志,或检查生成的编译命令行(会包含/TC参数)来确认模式已切换。
二、永久修改项目默认编译模式(避免每次传参)
由于你的项目常通过脚本重建,建议直接修改.vcxproj文件的默认配置,让项目从一开始就以TC模式编译:
- 打开目标项目的
name.vcxproj文件 - 找到对应平台(如Win32)的
PropertyGroup节点(Debug和Release配置都要改) - 添加
<CompileAs>1</CompileAs>配置项,示例如下:
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <!-- 原有配置 --> <OutDir>$(SolutionDir)$(Configuration)\</OutDir> <IntDir>$(Configuration)\</IntDir> <!-- 添加TC编译模式设置 --> <CompileAs>1</CompileAs> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <!-- 原有配置 --> <OutDir>$(SolutionDir)$(Configuration)\</OutDir> <IntDir>$(Configuration)\</IntDir> <!-- 添加TC编译模式设置 --> <CompileAs>1</CompileAs> </PropertyGroup>
这样后续无论脚本如何重建项目,默认都会以TC模式编译,无需再在MSBuild命令中追加参数。
内容的提问来源于stack exchange,提问作者User
相关产品推荐
相关产品推荐

