2012-10-29 41 views
2

我試圖自動執行TFS建立一個點擊一次.NET C#應用程序。 我已經根據下面的帖子編輯默認的XAML:http://blog.dontpaniclabs.com/post/2011/04/29/ClickOnce-Publish-and-Deploy-from-Team-Foundation-Server-2010.aspx 它非常適合那些沒有引用的項目簡單的項目,但是這一次的項目點擊引用庫項目也不能正常工作。 構建然而在現實中成功我正在以下2個警告:自動化的ClickOnce與發佈的MSBuild項目與項目參考

  1. 無法應用發佈的項目「library.dll」屬性。
  2. 兩個或更多的組件具有相同的身份 'clickonceprojectname.Client,版本= 1.0.1.17,文化=中性公鑰= 4F6F13E2414E9925,ProcessorArchitecture用於= MSIL'。

並且library.dll不包含在應用程序文件文件夾中,因此單擊安裝失敗。 對我來說,由於某種原因,msbuild試圖發佈依賴項目以及click一次項目。有什麼辦法可以解決這個問題嗎?

我已經看了很多帖子,並且已經嘗試了多種解決方案,包括確保複製本地=真正在項目文件,並重置在項目屬性在發佈選項卡中的所有應用程序文件。 有人可以幫助我嗎?我與這個掙扎了好幾天

回答

0

了大量的研究之後,我們發現,導致這一問題的MSBuild的參數是具有針對點擊一次發佈的AssemblyName參數。如果你刪除了這個參數,那麼這個構建對於依賴的dll也可以正常工作。 因爲對於我們有質量保證,測試和生產的版本,我們需要能夠並排在同一臺計算機上運行這些側每一個項目,我們必須有不同的組件名稱爲不同的版本。如果您沒有在msbuild參數中提供程序集名稱,它將從項目文件中獲取它。 我爲此所做的解決方法是創建一個自定義活動,根據發佈類型使用assemblyName更新項目文件。 如果有人願意,我可以分享自定義活動的代碼。 所以我在發佈之前更改項目文件中的程序集名稱,它運行良好!