Msbuild 如何合并命令行常量和配置常量

Msbuild 如何合并命令行常量和配置常量,msbuild,Msbuild,我有一个为配置定义了预处理器常量的项目 <DefineConstants>TRACE;DEBUG;VAR1</DefineConstants> 我希望执行MSBuild并定义常量VAR2,而不覆盖配置中定义的常量 <DefineConstants>TRACE;DEBUG;VAR1</DefineConstants> 我尝试: MSBuild MyProject.csproj /p:DefineConstants=VAR2 但未设置项目文件中定

我有一个为配置定义了预处理器常量的项目

<DefineConstants>TRACE;DEBUG;VAR1</DefineConstants>
我希望执行MSBuild并定义常量VAR2,而不覆盖配置中定义的常量

<DefineConstants>TRACE;DEBUG;VAR1</DefineConstants>
我尝试:

MSBuild MyProject.csproj /p:DefineConstants=VAR2
但未设置项目文件中定义的常量:“我的程序”仅显示

Var2

我尝试过类似的事情,但没有成功:

MSBuild MyProject.csproj /p:DefineConstants=$(DefineConstants);VAR2

$(定义常量);痕迹;调试;VAR1

这是一种合并项目中定义的常量和命令行中定义的常量的方法吗?

a确认通过命令行定义的属性将始终覆盖具有相同名称的静态定义属性。作为一种解决方法,您可以将项目文件中未定义的附加属性排入
队列:

<DefineConstants>TRACE;DEBUG;VAR1;$(MyCommandLineConstants)</DefineConstants>
<DefineConstants>TRACE;DEBUG;VAR1;$(MyCommandLineConstants)</DefineConstants>
MSBuild MyProject.csproj /p:MyCommandLineConstants=VAR2;VAR3