Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于常量的MSBuild条件_C#_Msbuild_Mono - Fatal编程技术网

C# 基于常量的MSBuild条件

C# 基于常量的MSBuild条件,c#,msbuild,mono,C#,Msbuild,Mono,所以我正试图用Mono构建一个C#项目。我想包括对System.Deployment的引用,条件是Mono编译器定义的\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。不过,我不确定当MSBuild获得my.csproj时,这些常量是否已经定义 我想我可能必须添加一个Mono配置,该配置将定义一个Mono常量,然后我可以删除对System.Deployment的引用,并使用\if Mono命令有条件地编

所以我正试图用Mono构建一个C#项目。我想包括对
System.Deployment
的引用,条件是Mono编译器定义的
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。不过,我不确定当MSBuild获得my.csproj时,这些常量是否已经定义

我想我可能必须添加一个Mono配置,该配置将定义一个Mono常量,然后我可以删除对
System.Deployment
的引用,并使用
\if Mono
命令有条件地编译我需要的行……但是如果我可以简单地添加
条件=“Defined(\u monos\uuuu)”会容易得多
到有问题的行并称之为好的…

不幸的是,Mono在xbuild(等效于MSBuild)中有一个函数,这使得很难定义这样的条件


想尝试修复这个bug吗?应该很容易,但实际上我还没有时间去尝试。

我想你很不幸地把事情搞砸了。编译器常量永远不会传回MSBuild,调用链是MSBuild->compiler->Preprocessor。

即使要添加“已定义(Monos)”,也需要告诉xbuild Monos实际上已定义,可能是通过DefineConstants属性定义的。但是您将仅为mono配置定义它,然后还可以添加该mono配置并有条件地引用System.DeploymentThank,这就是我想知道的…所以做这件事的典型方法是创建一个Mono构建配置并删除该配置的引用?是的,这将是最常见的方法。