の範囲は、私は、ターゲットのビルドのMSBuildタスクとプロパティ
<Target Name="Build">
<Message Text="Version : $(FullVersionNr)" />
<MSBuild Projects="@(WebProj)" Properties="WebProjectOutputDir=$(SitePublishPath);OutDir=$(SitePublishPath1);Configuration=$(Configuration)" />
<Message Text="Version : $(FullVersionNr)" />
と1つのビルドプロジェクトを持っていると、ビルド時に私は、正確なアセンブリ番号に$(FullVersionNr)を設定し、それが最後にこのNRはありません
私も、別のファイルに$(FullVersionNr)小道具
<Import Project="Common.proj"/>
を宣言し、それはグラムではありません外出する。
それは親から子プロジェクトへの一方向のみの通信がだ、と私はこのMSDNの記事は、あなたにこの達成するためにどのようにいくつかのアイデアを与えるべきである
第2のリンクと結論について - 「ターゲットの実行が終了すると、ローカルコンテキストの更新された値がグローバルコンテキストにマージされます。 - 私の場合それは**グローバルなコンテキストにマージされません** –
@Krzy、 '@(WebProj) 'リストに複数のプロジェクトがありますか?もしそうなら、 '$(FullVersionNr)'をそれぞれ一意かつ予測可能なものに設定し、ビルドを再実行し、最後に値が何であるかを見てください。依然として元の値と同じであれば、いずれのコンテキストもマージされていない。異なる場合は、変更したプロジェクトを追跡できます。 – slugster
これは1つのWebプロジェクトであり、残りのプロジェクトは依存プロジェクトとして構築されています。それらのすべてが同じバージョン番号を設定し、最後にこの値は最初のプロジェクトに返されません。 –