2013-11-25 109 views
0

我想在TeamCity中使用msbuild來配置buildserver以準備構建。除了msbuild不會通過項目引用複製引用的庫之外,一切似乎都可以,例如,我有一個使用SSH.NET的項目,而我的Web App使用該項目,但我無法強制msbuild將SSH.NET庫複製到Web App發佈文件夾。TeamCity for MS應用程序的MSBuild不復制引用的庫

我使用的MSBuild XML:

<MSBuild Projects="$(WebAppDir)\WebApp.csproj" 
     Targets="ResolveReferences; _WPPCopyWebApplication" 
     Properties="Configuration=$(Configuration); Platform=$(Platform); WebProjectOutputDir=..\$(ReleaseOutputDir)\$(WebAppDir)\" 
      /> 

我還試圖用SLN建設者。使用此構建器,Teamcity將複製所有庫,但它不是發佈構建版本。

我試過做什麼?在SO上檢查其他線程,我試過了:

  1. 將標記<private>True...添加到依賴項目的csproj文件;
  2. 將引用庫的屬性更改爲所有可能的值:將local複製到true,false,content等;
  3. 我也嘗試使用nuget installer步驟來解決引用問題。

    但這兩種都不適合我。

    MB是否有另一種方式獲取msbuild中的web應用程序的發佈版本?或者我應該如何讓msbuild準備與Visual Studio手動發佈命令構建相同的構建?

+0

您是否嘗試過使用內置發佈配置文件?在引擎蓋下使用MSBuild,但更容易設置。看看Troy Hunt撰寫的這篇偉大的文章。幫助了我很多http://www.troyhunt.com/2010/11/you-deploying-it-wrong-teamcity.html –

回答

0

只是想我會提到我最近花了2天試圖找出爲什麼TeamCity沒有複製引用程序集。事實證明,這是因爲儘管程序集在「參考」和「複製本地」下被「引用」爲true,但它並未複製它,因爲程序集是在運行時動態加載的。我所要做的是添加一行,從該庫創建任何對象,然後TeamCity設法拾取並複製引用的程序集。我不知道這是否會幫助你的情況。