TFS 2010 - 构建ClickOnce应用程序

时间:2010-08-09 19:29:02

标签: tfs clickonce tfs2010

我需要能够在TFS 2010中构建ClickOnce应用程序。它需要设置ApplicationVersion以及MinimumApplicationVersion。在TFS 2008中,我成功地完成了以下工作......

<MSBuild Projects="e:\MyAppBuilds\test\trunk\src\MyApp.Automation.Workflow.UI\MyApp.Automation.Workflow.UI.csproj"
         Properties=" PublishDir=\\MyServer\shared\MyCompany\Testing\MyApp\;
                      ApplicationVersion=$(Major).$(Minor).$(Build).$(Revision);
                      Configuration=$(Configuration);
                      Platform=$(Platform);
                      Install=true;
                      MinimumRequiredVersion=$(Major).$(Minor).$(Build).$(Revision)"
         Targets="PublishOnly"
         ContinueOnError="true" ToolsVersion="4.0"/>

但是,我似乎无法通过尝试在活动中复制上面的任务来使MSBuild活动正确发布应用程序。我的设置如下。

CommandLineActivities = String.Format("/property:PublishDir=""{0}"" /property:Install=""true"" /property:Configuration=""{1}"" /property:Platform=""{2}"" /property:ApplicationVersion=""{3}"" /property:MinimumRequiredVersion=""{3}"" ", BuildDetail.DropLocationRoot, platformConfiguration.Configuration, platformConfiguration.Platform, VersionNumber)

项目 localProject

目标 New String() {"Publish"}

有没有人成功这样做过?

2 个答案:

答案 0 :(得分:2)

我有一个自定义构建流程模板,我从默认流程模板分支。然后,我在构建成功后添加一个部分,以对新的参数进行操作,该参数是一个字符串数组。这些是我想要部署的项目。

然后我使用MSBuild活动,因为MrHinsh建议将目标定位为Publish目标。您可以像我们一样使用CommandLineArguments自定义版本控制信息。这是我正在使用的ClickOnce安装程序的应用程序版本的快速摘录:

String.Format("/p:SkipInvalidConfigurations=true;ApplicationVersion={1} {0}",
              PublishArguments, 
              BuildVersion)

答案 1 :(得分:0)

我认为,你最好的选择是创建一个自定义.proj文件(msbuild),你可以通过该文件来包含你已经拥有的电话。然后,TFS可以构建自定义.proj文件。