在运行MSBuild时,使用
例如:
如果像这样运行:
我希望 Script2.proj 能以某种方式设置 GlobalProp2,以产生以下输出:
/p:MyProp=value
在命令行中传递的任何内容可以从每个由主脚本调用(通过MSBuild
任务)的MSBuild脚本中访问。 我如何定义一个类似地从每个脚本中访问的属性,在任务中呢?例如:
Script1.proj:
[...]
<Target Name="Test">
<MSBuild Projects="Script2.proj"/>
<Message Text="Script1, GlobalProp1=$(GlobalProp1)"/>
<Message Text="Script1, GlobalProp2=$(GlobalProp2)"/>
</Target>
Script2.proj:
[...]
<Target Name="Test">
<!-- ??? Set GlobalProp2 = VALUE2 ??? -->
<Message Text="Script2, GlobalProp1=$(GlobalProp1)"/>
<Message Text="Script2, GlobalProp2=$(GlobalProp2)"/>
</Target>
如果像这样运行:
msbuild Script1.proj /p:GlobalProp1=VALUE1
上述脚本将产生以下输出:Script2, GlobalProp1=VALUE1
Script2, GlobalProp2=
Script1, GlobalProp1=VALUE1
Script1, GlobalProp2=
我希望 Script2.proj 能以某种方式设置 GlobalProp2,以产生以下输出:
Script2, GlobalProp1=VALUE1
Script2, GlobalProp2=VALUE2
Script1, GlobalProp1=VALUE1
Script1, GlobalProp2=VALUE2
这是否可行,如果可以,要怎么做呢?
我看过使用环境变量的建议,但似乎唯一有帮助的情况是当该变量在父脚本中被设置,并且使用Exec任务调用子脚本时(否则环境变量更改无效)。