2012-01-25 8 views
2

私は2つのVisual Studioデータベースプロジェクトを持っています。 IプロジェクトBIを構築するときに、プロジェクトBはA. への参照を有しているMsBuildはプロジェクト間のプロパティグループ

Project A 
Project B 
- References: Project A 

プロジェクトAは、インディペンデントデータベースプロジェクトでのMSBuildから次の期待される出力を有する:

------ Build started: Project: Project A, Configuration: Debug Any CPU 
--------- Build started: Project: Project B, Configuration: Debug Any CPU ------ 
========== Build: 2 succeeded or up-to-date, 0 failed, 0 skipped ========== 

プロジェクトB I Inをプロパティは次のように定義されています:

<PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> 
    <MyProperty>MyValue</MyProperty> 
    </PropertyGroup> 

今、両方のプロジェクトで、私は簡単なタスク番目を作成しました私はプロジェクトをビルドし、それが変数の値を印刷する前に実行されます。 プロジェクトA、Bは:

<Target Name="Print" BeforeTargets="Build"> 
    <Message Text="MyProperty is: $(MyProperty)" Importance="high" /> 
    </Target> 

残念ながら、私はMSBuildの上でこの動作を取得する:

------ Build started: Project: Project A, Configuration: Debug Any CPU 
MyProperty is: 
--------- Build started: Project: Project B, Configuration: Debug Any CPU ------ 
MyProperty is: MyValue 
========== Build: 2 succeeded or up-to-date, 0 failed, 0 skipped ========== 

私はへの参照を持っていますこの設定のプロジェクトBのプロジェクトA:

<ItemGroup> 
    <ProjectReference IncludeProjectA.dbproj"> 
     <Name>ProjectA</Name> 
     <Project>{f6546bef-cea7-4e7f-b6f1-cce1c06c7b1a}</Project> 
     <Private>True</Private> 
    </ProjectReference> 
    </ItemGroup> 

プロジェクトBのMyPropertyの値をプロジェクトAに挿入する方法はありますか?

答えて

5

「対象」ファイルを作成して、両方のプロジェクトで共有することはどうですか?したがって、"DatabaseProjects.Targets"のようなものがあります。これには基本的なMSBuildヘッダータグがあり、次にプロパティグループがあります。プロジェクトAとプロジェクトBでその後

後の構成定義、<Import Project="DatabaseProjects.Targets" />

のように、その方法をインポート要素とターゲットファイルをインポートし、プロパティは、任意の単一のプロジェクトであってもよいが、ではありません共有 "ターゲットインポート"。

追加された可視性のために、リンクされた 'なし'/'コピーしない'ファイルとしてターゲットファイルをプロジェクトに追加することができます。

+0

正確には、これは私がやったことです。私は複数のプロジェクトをビルドするカスタムターゲットを作成し、それぞれがタグを使用して必要な変数を渡します。 – Raffaeu

+0

プロジェクト間で再利用されたプロジェクトファイルを共有できますか? – gap

+0

本当に特別なことは何もないので、標準のMSBuildプロジェクトファイルルート要素( '')が必要です。そして、 'PropertyGroup'のような、あなたが望むどんなプロパティでも。 – Snixtor

関連する問題