2010-08-09 138 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