2009-07-08 169 views
1

我有一個在Team Foundation構建上運行的msbuild腳本。構建中的其中一個項目是clickOnce應用程序。到目前爲止,我已經制定了如何讓腳本將項目發佈到正確的位置,但我無法設置單擊應用程序版本。從TFS構建MSBUILD的版本構建

我使用msbuildcommunitytasks中的TFSVersion Task設置版本,這似乎工作正常我可以看到我的版本號更新。問題似乎是,當我們進入CompileConfiguration和發佈部分時,這個版本號被重置爲初始值。我如何獲得這個值來傳播?

當我到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

的伎倆感謝這並 – 2009-07-09 07:31:23