2010-08-09 135 views
2

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

<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

我会证明自己对此感兴趣。它需要一个自定义的活动,或只是额外的MSBuild配置 – 2010-08-10 08:54:09

回答

0

我认为,你最好的选择是制作一个自定义的.proj文件(msbuild),你可以通过它来调节你已有的调用。然后TFS可以构建自定义.proj文件。

2

我有一个自定义的构建过程模板,我从默认过程模板中分支出来。然后,我在构建成功之后添加一个部分,以处理新的参数,这是一个字符串数组。这些是我想要部署的项目。

然后,我使用MSHHHH活动,因为MrHHHHH建议定位发布目标。您可以像我们一样使用CommandLineArguments来定制版本信息。下面是我使用ClickOnce安装程序的应用程序版本的快速代码片段:

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

我已经尝试了几件事情,基本上,这是现在我在哪里。我可以使用MSBuild活动和参数,但是,当我尝试加载它时,创建的应用程序文件给了我以下错误。 “部署中的引用与应用程序清单中定义的标识不匹配。” – 2010-08-11 13:30:27

+0

您是否能够使用相同的信息从VS手动发布成功?我的第一个猜测是对指定的信任信息有影响的版本。我不是一个clickonce专家,但名称,版本,文化和公钥标记都用作信任标识符。 – 2010-08-11 13:49:40

+0

查看此文章:http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/43353f07-307f-4f4f-b1d2-526c83b2681a/ – 2010-08-11 13:52:09