C# 为多语言解决方案定义多个预处理器常量

C# 为多语言解决方案定义多个预处理器常量,c#,c++,vb.net,msbuild,powershell-2.0,C#,C++,Vb.net,Msbuild,Powershell 2.0,我目前正在为使用powershell 2.0和MSBuild的系统编写生成脚本。基本思想是,我们的图书管理员可以双击并以各种配置构建它。不幸的是,出于合同原因,我们必须使用预处理器指令配置项目,有些配置需要定义几个不同的常量,我们使用powershell生成命令,例如: msbuild.exe thing.sln /p:DefineConstants="FOO;BAR" /t:Rebuild 它工作得好,花花公子,直到它击中VB项目,这是一个整体的质量的VB,C,C++和C. Than,我得到

我目前正在为使用powershell 2.0和MSBuild的系统编写生成脚本。基本思想是,我们的图书管理员可以双击并以各种配置构建它。不幸的是,出于合同原因,我们必须使用预处理器指令配置项目,有些配置需要定义几个不同的常量,我们使用powershell生成命令,例如:

msbuild.exe thing.sln /p:DefineConstants="FOO;BAR" /t:Rebuild

它工作得好,花花公子,直到它击中VB项目,这是一个整体的质量的VB,C,C++和C. Than,我得到一个错误,如:

FOO;^^^^酒吧无效:字符无效


我假设它与VB.NET有关,比如它的预处理器常数是冒号分隔的,而不是分号分隔的。我的问题是:是否有一种语言不可知的方法,至少是VB/C/C++/C不可知的方法,通过DefineConstants定义这些预处理器常量?如果是这样,我该怎么做呢?

在一堂相信自己直觉的课上,我发现逗号是有效的