我需要能够在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"}
有没有人成功这样做过?
答案 0 :(得分:2)
我有一个自定义构建流程模板,我从默认流程模板分支。然后,我在构建成功后添加一个部分,以对新的参数进行操作,该参数是一个字符串数组。这些是我想要部署的项目。
然后我使用MSBuild活动,因为MrHinsh建议将目标定位为Publish目标。您可以像我们一样使用CommandLineArguments自定义版本控制信息。这是我正在使用的ClickOnce安装程序的应用程序版本的快速摘录:
String.Format("/p:SkipInvalidConfigurations=true;ApplicationVersion={1} {0}",
PublishArguments,
BuildVersion)
答案 1 :(得分:0)
我认为,你最好的选择是创建一个自定义.proj文件(msbuild),你可以通过该文件来包含你已经拥有的电话。然后,TFS可以构建自定义.proj文件。