2009-07-08 18 views
1

Team Foundationビルドで実行されるmsbuildスクリプトがあります。ビルド中のプロジェクトの1つはclickOnceアプリです。これまでのところ、プロジェクトを適切な場所に公開するためのスクリプトを作成する方法を試しましたが、クリック一度のアプリケーションバージョンを設定することはできません。MSBUILDのバージョンをTFSビルドから設定する

TFSVersionタスクを使用してバージョンを設定しました。これは正常に動作するようですが、私のバージョン番号が更新されています。この問題は、CompileConfigurationセクションとpublishセクションに入ると、このバージョン番号が初期値にリセットされているようです。この値をどのように伝播させるのですか?

私はリビジョンをBeforeCompileてもらう私のチェンジセットに一致するが、私はリビジョンをBeforeCompileConfigurationするために取得するときに戻ってここで0

へのスクリプトのハイライトされている。

<PropertyGroup> 
    <CustomizablePublishDir>true</CustomizablePublishDir> 
    <SkipLabel>true</SkipLabel> 
    <!-- Version Settings --> 
    <Major>2</Major> 
    <Minor>12</Minor> 
    <Build>0</Build> 
    <Revision>0</Revision> 

    <GetDependsOn> 
    $(GetDependsOn); 
    Version 
    </GetDependsOn> 
</PropertyGroup> 

<ItemGroup> 
    <SolutionToBuild Include="$(BuildProjectFolderPath)/../../AutoBuildTest/AutoBuildTest.sln" /> 
    <SolutionToPublish Include="@(SolutionToBuild)" > 
    <Properties> 
     PublishDir=\\DeployServer\Deploy\AutoBuildTest\; 
     MinimumRequiredVersion=$(Major).$(Minor).0.0; 
     ApplicationVersion=$(Major).$(Minor).$(Build).$(Revision) 
    </Properties> 
    </SolutionToPublish> 
</ItemGroup> 

<Target Name="Version"> 
    <Message Importance="high" Text="Updating Version: $(Major).$(Minor).$(Build).$(Revision)"/> 
    <TfsVersion LocalPath="$(SolutionRoot)"> 
    <Output TaskParameter="Changeset" PropertyName="Revision"/> 
    </TfsVersion> 
    <Time Format="ddMM"> 
    <Output TaskParameter="FormattedTime" PropertyName="Build" /> 
    </Time> 
    <Message Importance="high" Text="New Version: $(Major).$(Minor).$(Build).$(Revision)"/> 
</Target> 

答えて

1

これはSolutionToBuildためである可能性がありitemgroupには値0が設定されているため、プロパティは$(Revision)の値を受け取ります。

あなたは動的にバージョン番号の後に溶液がそうのように、スクリプトの先頭ではなく、更新されたことを含めてBeforeCompileConfigurationをオーバーライドしてみてください:

<Target Name="BeforeCompileConfiguration"> 
    <ItemGroup> 
     <SolutionToPublish Include="@(SolutionToBuild)" > 
      <Properties> 
       PublishDir=\\DeployServer\Deploy\AutoBuildTest\; 
       MinimumRequiredVersion=$(Major).$(Minor).0.0; 
       ApplicationVersion=$(Major).$(Minor).$(Build).$(Revision) 
      </Properties> 
     </SolutionToPublish> 
    </ItemGroup> 
</Target> 
+0

トリック感謝をしたと –

関連する問題