Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.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# 如何解析BeforeBuild目标中的DefineConstants值?_C#_Msbuild - Fatal编程技术网

C# 如何解析BeforeBuild目标中的DefineConstants值?

C# 如何解析BeforeBuild目标中的DefineConstants值?,c#,msbuild,C#,Msbuild,与……有关 我真正想要的是一种可以从visstudio2010ide设置键值对的方法。我似乎无法从IDE中设置项目属性值,因此我正在考虑使用编译器常量 因此,如果我将编译器常量设置为 <DefineConstants>Foo=bar;Key=Value 2;</DefineConstants> 我是否可以在BeforeBuild目标中解析它,以便提取bar和Value 2的值?我的MSBuild技能几乎一无是处,我的Google foo也没有找到任何解决方案。使用MS

与……有关

我真正想要的是一种可以从visstudio2010ide设置键值对的方法。我似乎无法从IDE中设置项目属性值,因此我正在考虑使用编译器常量

因此,如果我将编译器常量设置为

 <DefineConstants>Foo=bar;Key=Value 2;</DefineConstants>

我是否可以在BeforeBuild目标中解析它,以便提取bar和Value 2的值?我的MSBuild技能几乎一无是处,我的Google foo也没有找到任何解决方案。

使用MSBuild编译项目时,可以覆盖此值

 msbuild.exe myproj.csproj /p:DefineConstants="foo=true"
不能在BeforeBuild任务中设置生成属性,但可以使用以下命令读取它们:

 $(DefineConstants)
这将返回原始字符串,您需要使用批处理命令解析该字符串,以便在BeforeBuild步骤中将它们分成键/值对

不确定您想要做什么,DefineConstants就是这样,并在条件编译的代码中引用。如果要添加自定义生成属性,可以编辑csproj文件并包含自己的目标文件。这取决于您希望访问它们的位置和原因。在构建过程中,是IDE插件还是代码