2017-08-09 7 views
1

私はcsprojに次のようなImportがあります。 小道具のこの時点で、Variableの値を見つけるにはどうすればよいですか?msbuildの理解:印刷変数値

can not find props files : `<path_to_abc>\\abc.props` 

がどのように私はここにVariableの値を見ることができます:

<Import Project="<path_to_abc>\$(Variable)\abc.props>" 
     Condition=" '$(Variable)' != '' "  
/> 

私はというエラーを構築し得ますか? Importの上にMessageをcsprojの上に置くと、どのターゲット依存関係を与えるべきですか?

<Target Name="PrintInfo" BeforeTargets="BeforeBuild"> 
    <Message Text="'$(Variable)' $(Variable.length) " /> 
</Target> 

は私に'' 0を与えます。

しかし、BeforeBuildのためですか?

msbuildはどのように動作しますか? すべてのプロパティを先に処理していますか? そして、それがTargetsを処理する場合、現時点で値を出力しますか?

小道具を評価しているときにどのような値が入力されているかは分かりますか?

答えて

1

悲しいことに、インポートは現在ログに記録されていませんが、今後のMSBuild 15.3リリースとそのバイナリログ機能で変更される予定です。ログは、その後(輸入品を含む)、プロジェクトの完全に評価プロパティでInitial Propertiesリストが含まれます

0>Property reassignment: $(Foo)="bar" (previous value: "foo") at /Users/martin.ullrich/tmp/test.proj (10,5) 

/flp:Verbosity=diagnosticを使用してMSBuildのに

呼び出しは、このようなmsbuild.logファイルにプロパティの再割り当てイベントを発行します。

<Import>プロパティを使用する場合、そのためにステートメントのプロパティ定義とインポート文が処理されることを理解することが不可欠である - 状態にするか、プロジェクトパスのいずれか - それはその時にプロパティの値を使用します。瞬間

は、他のいくつかの重要な側面があります。

  • プロパティ・グループは、前の項目グループと項目定義グループを処理しています。輸入プロジェクト全般にわたって!
  • 目標条件は、ターゲットが実行のために考慮され、両方の影響を受けることができる時に評価されますインポートされたすべてのプロジェクトファイルと、既に実行された他のターゲットで発生した変更。
を参照してください。
関連する問題