簡體   English   中英

Nuget包的teamcity構建失敗

[英]Build fails in teamcity for Nuget packages

我通過Nuget Autoumapper和NUnit包添加到我的解決方案中,它們運行良好,項目在我的計算機中編譯。

當我聲明構建服務器構建此解決方案時,我得到了以下消息:

[MSBuild] AutoMapper\AutoMapperSpike.csproj: Build default targets (1s)
[10:35:50][AutoMapper\AutoMapperSpike.csproj] ResolveAssemblyReferences
[10:35:50][ResolveAssemblyReferences] ResolveAssemblyReference
[10:35:50][ResolveAssemblyReference] Primary reference "AutoMapper".
[10:35:50][ResolveAssemblyReference] C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360, 9): warning MSB3245: Could not resolve this reference. Could not locate the assembly "AutoMapper". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
[10:35:50][ResolveAssemblyReference]         For SearchPath "{HintPathFromItem}".
[10:35:50][ResolveAssemblyReference]         Considered "..\packages\AutoMapper.2.2.1\lib\net40\AutoMapper.dll", but it didn't exist.

有誰知道如何解決這個問題?

我注意到的另一件事是它使用packages文件夾在構建服務器中創建了artificts。 它唯一能做的就是在構建服務器中構建項目。

在Visual Studio環境中,UI有一個選項,用於在用戶配置文件上設置值,因此您無需再次記住它。 但是,在構建服務器上,沒有這樣的選項。 相反, 您必須將環境變量“EnableNuGetPackageRestore”設置為“true”作為構建的一部分。

我建議不要嘗試在構建腳本或.csproj文件中設置環境變量。 這是博客文章,關於它為什么會發生以及在dev機器/構建服務器上設置什么。

確保TeamCity實際下載該包。 您可以在NuGet Packages選項卡上的單個構建結果頁面的構建歷史記錄中看到它。 如果您在那里看到您的包裹,那么TeamCity可以使用該包裹。

接下來,確保您可以從VCS中構建新的項目,即采用干凈的克隆並嘗試構建它,因為這就是TC必須要做的事情。

我在一個非常類似的場景中的問題是我剛剛將一個項目復制到另一個存儲庫並且引用錯誤,盡管由於緩存的DLL本地編譯成功了。 卸載程序包並從Visual Studio程序包管理器再次安裝它解決了該問題。

您需要將軟件包簽入VCS,或者 - 更好 - 在解決方案中啟用NuGet軟件包還原

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM