2012-11-05 185 views
57

我在這裏的一個特殊情況,我有一個WebApplication包含對WCF服務的引用。構建失敗,沒有任何錯誤或警告

同時建立使用VS2010,構建失敗,沒有任何錯誤或警告。然而,使用MsBuild構建.csproj是成功的。

想不通我應該嘗試在Visual Studio中,解決/診斷問題。你能幫忙嗎?

編輯:

我發現,在構建已失敗,

  1. 在狀態欄中顯示的文本。

enter image description here

2.從輸出窗口:

==========生成:0成功或達到最新,1失敗,0跳過=== =======

+4

你怎麼知道你的編譯失敗? –

+0

@SamIam更新的問題表明這一點。 – Abhijeet

+5

輸出標籤中是否有任何內容? – Malice

回答

34

我剛碰到類似的情況。在我的情況下,在csproj文件的BeforeBuild目標中出現的自定義操作(來自Nuget.org上的MSBuildVersioning包 - http://www.nuget.org/packages/MSBuildVersioning/)失敗,未在正常位置觸發任何錯誤消息。

我能夠通過設置MSBuild項目生成輸出的詳細程度,以確定這(在Visual Studio中的選項/項目和解決方案/生成和運行設置區)爲「診斷」,如下圖所示。這表明自定義操作(在我的情況下是HgVersionFile)是失敗的。

Screen capture from Visual Studio showing the modified setting.

+1

極好的發現理查德 - 當您將兩個詳細級別都設置爲診斷時,真正有用的信息 –

+1

對於像我這樣不知所措的人:要使用此方法,您可能必須搜索輸出窗口的內容。我的構建錯誤被'#pragma warning disable'語句隱藏,只有當我在輸出窗口中搜索'錯誤'時纔會看到。 – sirdank

+0

將我的詳細程度設置爲診斷後,我發現我得到一個System.OutOfMemoryException。我使用了我電腦98%的可用內存。這是一個很好的答案! – TxRegex

44
  • 如果解決方案包含多個項目,請嘗試一次構建一個項目。
  • 嘗試重新啓動Visual Studio。
  • 嘗試重新啓動計算機。
  • 嘗試 「全部重建
  • 嘗試 「清理解決方案」,然後刪除您的 「vspscc」 文件和 「vssscc」 文件,然後重新啓動Visual Studio,然後 「全部重建」。
+49

如果沒有幫助,我應該找一份新工作? –

+2

剛剛重新啓動VS2013幫助了我。我正在研究一臺資源有限的虛擬機,但我不確定這與它有什麼關係。 – Jmaurier

+0

@Jmaurier記憶增加和工作!謝謝。 –

0

這發生在我身上添加新頁面的asp.net項目後。

我所做的是排除頁面,得到它的成功打造。

然後我添加了所有代碼註釋掉的頁面。成功。

然後,我通過註釋掉位碼位,然後它的所有工作。

13

VS(2013 Pro,Win 8.1)重新啓動爲我做了。

+0

VS 7最終更新5在Win 7.重新啓動工作。 –

+0

VS 2015社區贏得7個MVC項目。分辨率相同。 – maplemale

3

首先 「清理解決方案」,然後重建SOLN。

如果不能解決問題並重新啓動解決方案。

試試這些東西,希望絕對有效。

8

我想展開Sasse's answer

要解決Visual Studio 2015 Update 2的問題,我必須一次構建一個項目,並在每次構建後查看輸出窗口。

一個項目給我

「的類型或命名空間名稱SomeNamespace'不存在命名空間‘BeforeSomeNamespace’(是否缺少程序集引用?)存在」。

「錯誤列表」窗口中沒有錯誤,但程序集在「參考」下有一個黃色警告標誌。

然後我看到引用項目的目標是4.5.1,引用的項目是4.6.1。將4.6.1更改爲4.5.1可使整體構建成功。

+0

那麼,一次構建一個項目可能沒有必要,但有一件事是肯定的:仔細看一下輸出窗口(更好地複製/粘貼到記事本並使用Ctrl + F查找) 。它不會出現在錯誤列表中,但它確實會破壞您的解決方案。 -.- –

2

在我的解決方案中添加一個新項目(稱爲「TestCleaner」)後,我遇到了類似的問題:構建失敗,沒有錯誤。

我增加了輸出冗長度(請參閱Richard J Foster的說明)並搜索輸出「失敗」。我很快發現哪個項目失敗了,爲什麼:項目「TestRunner」失敗,出現「錯誤」CS0246:無法找到類型或命名空間名稱'TestCleaner'(即使代碼中未突出顯示任何問題)。

檢查TestRunner的引用,果然TestCleaner的引用被標記爲未解析,並且引用屬性中缺少該路徑。刪除和重新添加沒有解決它。再次,沒有解釋爲什麼。

unresolved reference

我終於發現了原因:「TestCleaner」使用不同的目標框架的其他項目。它是.Net 4.5.2;其他人是4.5。

4

什麼都沒有爲我工作,所以我刪除了.suo文件,重新啓動VS,清理投影,然後構建將工作。

4

似乎這個問題有多個答案,所以我會加入我的個人經驗,希望能夠節省一些時間/壓力。

確保解決方案中的所有項目都針對相同的.NET版本。

與OP類似,存在0個錯誤,但構建保持失敗。但是,有一個警告條目(埋在幾百個無用的XML警告之間......)說,一個項目的目標是與引用它的項目不同的.NET版本。整個問題是,我的解決方案中的一個項目針對.NET 4.5.2,其餘的針對4.5.1。它應該即使有這種差異(因此爲什麼它只是一個警告),但不幸的是,它打破了構建。

奇怪的部分是它構建/運行良好一段時間,但突然構建開始失敗一次導致此問題。不知道我爲了開始抱怨不同的.NET目標版本而做了什麼,但是我覺得在Visual Studio中只有一些謎團是永遠不會解決的。

+1

原來我添加了一個新的項目,它有一個不同的.Net目標框架版本 - 我修正了這個問題,儘管構建仍然失敗,但我仍然能夠看到破壞構建的錯誤。謝謝。 – Fijjit

3

另一種可能是Visual Studio需要以管理員身份運行,這可能與部署到本地IIS服務器或其他部署需求有關。

2

當所引用的項目之一是.NET框架的高於當前項目的版本時,可能會發生這種情況。

0

刪除了幾個表單後,我遇到了同樣的問題。一旦我進入代碼併爲我刪除的控件之一執行了「顯示定義」,就會彈出錯誤消息。

我也在針對我的一個項目設計一個更高級的框架,所以也可能是這個問題。

2

只是爲了完成,也許可以幫助別人在將來再次遇到同樣的錯誤,我使用Mahapps metro接口並更改了一個窗口的XAML,但忘記更改代碼隱藏中的部分類。在這種情況下,構建失敗,沒有錯誤或警告,我能夠從設置增加輸出的詳細程度來找到它:

Error pane

output pane

+4

也在錯誤過濾器中選擇「僅構建」而不是「構建+智能感知」。 – niico

2

我有同樣的問題。錯誤列表窗口有2個下拉列表「顯示包含的項目」和「顯示問題生成」。這些名稱在懸停在下拉列表後可見。 「顯示問題生成」下拉菜單設置爲「Build + IntelliSense」,更改爲「Build Only」後,列表中出現錯誤。

0

我面臨同樣的問題!只需刪除bin文件夾並重新啓動您的VS。 就是這樣。在VS 2013中測試的 。

0

什麼解決了我的問題,是從解決方案的根目錄中刪除.vs文件夾並重新啓動Visual Studio。

也許可以說很重要,即使這些錯誤沒有顯示在錯誤列表窗格中,它們仍然存在於構建的輸出中。

0

我已經嘗試過所有,但沒有在我的情況下工作,然後我已經改變了這些提到的設置,很好地解決了我的問題。 嘗試如果它可以幫助後來的觀衆。 這些設置可能會因您的情況而有所不同,但請確保使用您最初保存的相同配置設置(在圖像中提到)構建所有包括DLL。 Configuration Settings

Image here.

乾杯!

9

Build + Intellisense吞下錯誤消息。 選擇Build Only顯示它們。

Screenshot

0

如果安裝NuGet包 'Microsoft.Net.Compilers',確保它適合你的Visual Studio版本(構建工具的版本)。

版本1.x意味着C#6.0(Visual Studio 2015和更新)。例如,1.3.2

所以不要升級到版本1.x的上面,如果你使用VS2015

https://stackoverflow.com/a/44397905/3862615

相關問題