2009-07-08 129 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