パラメータ/p:MyPrefix=Custom
を指定して、SampleScript
という名前のビルドスクリプトを起動したとします。スクリプトで次のコードがあります:MSBuildプロパティと変数のオーバーロード
<PropertyGroup Condition="$(BuildDefinitionName)=='SampleScript'">
<MyPrefix>Default</MyPrefix>
</PropertyGroup>
私が得るように、第一MyPrefixが「カスタム」に設定されている、それが「デフォルト」にオーバーロードされます(私は右です?)。もしそうなら、ユーザー指定のパラメーターを優先順位付けする方法はありますか?それで、オーバーロードされていませんか?あなたが唯一の...上記の例で
<Project ...>
<PropertyGroup>
<Value>FromStaticProperty</Value>
</PropertyGroup>
<Target Name="PropertyPrecedence">
<Message Text="Value = '$(Value)'" />
<PropertyGroup>
<Value>FromDynamicProperty</Value>
</PropertyGroup>
<Message Text="Value = '$(Value)'" />
</Target>
</Project>
> msbuild /p:Value=FromCommandLine
を動的にターゲット内の値を変更することで、コマンドラインで指定されたプロパティをオーバーロードすることができます
これはテストしましたか?私が正しく覚えていれば、MSBuildのコマンドライン設定値は、実際にはproject/targetsファイルの値よりも優先されます。 –
なぜ条件を使用しないのですか? 'デフォルト ' –
KMoraz
@ニックあなたは100%正解です。 – Arnthor