4

以爲我會嘗試並充分利用我的visualstudio.com試用會員資格。我使用一些項目創建了一個解決方案,將其推送到Microsoft git源代碼控制提供程序,配置構建定義並嘗試在項目服務器上構建它。但是它一直沒有告訴我:VisualStudio.com(Visual Studio團隊服務)在nuget軟件包依賴關係上構建失敗

類型或命名空間名稱「起訂量」無法找到(你 缺少using指令或程序集引用?)

我知道這意味着生成服務器無法找到Moq.dll庫。我已經使用NuGet安裝了它,但配置了我的.gitignore以使包文件夾不受源代碼管理。我還爲解決方案啓用了NuGet軟件包恢復功能,並將nuget.exe,nuget.targets和nuget.config(.nuget文件夾中的所有文件)與其他所有項目文件一起推送。

現在我確定我可以讓構建工作,如果我也推動包文件夾,但我想保持nuget包文件夾脫離源代碼管理。所以我想知道,這可能嗎? visualstudio.com文檔說,構建服務器安裝了visual studio 2013,因此我假設nuget包恢復將工作以下載缺少的dll,以便可以通過MSBuild解析它們。這是正確的嗎?或者在visualstudio.com上使用自動CI構建,你是否需要將你的軟件包放在源代碼控制之下?

根據日誌文件,nuget包恢復下載了該包。是什麼賦予了?

項目 「C:\一個\ SRC \ MySln.sln」(1)正在構建 「C:\一個\ SRC \測試\ MySln.ProjA.UnitTests \ MySln.ProjA.UnitTests.csproj」 (3)在節點1上(默認目標)。 RestorePackages:
「C:\ a \ src.nuget \ NuGet.exe」install 「C:\ a \ src \ Tests \ MySln.ProjA.UnitTests \ packages.config」-source「」 - NonInteractive -RequireConsent - solutionDir「C:\ a \ src \」恢復NuGet包...爲防止NuGet在構建過程中下載包,請打開Visual Studio選項對話框,點擊包 管理器節點並取消選中「允許NuGet下載缺失的包」 。
packages.config中列出的所有軟件包已安裝。 PrepareForBuild:創建目錄「obj \ Debug \」。 ResolveAssemblyReferences:主要參考「Moq」。 C:\ Program Files (x86)\ MSBuild \ 12.0 \ bin \ amd64 \ Microsoft.Common.CurrentVersion.targets(1635.5): 警告MSB3245:無法解析此引用。找不到 組件「Moq」。檢查以確保程序集存在於磁盤上。如果 此引用是您的代碼所必需的,則可能會收到編譯 錯誤。 [C:\ A \ SRC \測試\ MySln.ProjA.UnitTests \ MySln.ProjA.UnitTests.csproj]

這條線也是在生成日誌文件,低於上述:

考慮到「.. \ packages \ Moq.4.1.1311.0615 \ lib \ net40 \ Moq.dll」,但它不存在。

回答

2

我自己想出了這一個。原來我在將測試項目移動到測試子文件夾之前添加了nuget軟件包。該解決方案仍然建立在我的LM上,可能是因爲依賴關係已經複製到bin/Debug中。重新安裝Nuget軟件包後,該解決方案構建在vs.com上。

3

我有這個相同的錯誤,但它發生在我們的生成服務器上。我通過NuGet添加了Moq,簽入了該項目,一切都很順利。然後我把項目移到了TFS中的一個新文件夾中,而構建服務器似乎找不到Moq。它在當地建設很好。我最終通過確保將所有更改都簽入到源代碼管理中,然後刪除我的本地源代碼目錄來解決問題。我得到最新的,我的測試項目意識到它需要Moq的新副本。我責備TFS /源安全或什麼Visual Studio集成模塊是什麼在某些時候不添加到源控制。

+0

好吧,刪除本地文件夾和獲取最新的把戲我在LM錯誤,這是一個很好的提示 – bresleveloper

+0

上面,刪除本地解決方案文件夾與nuget包文件夾,並試圖建立時得到最新,併成功建立後檢查,3-4次,並一次又一次修復引用錯誤,它終於奏效。 – bresleveloper

相關問題