エラーや警告なしにビルドが失敗した理由を見つける方法


144

WCFサービスへの参照を含むWebアプリケーションがあります。

Visual Studio 2010を使用してビルドしているときに、エラーや警告なしでビルドが失敗します。ただし、.csproj使用の構築MsBuildは成功しています。

問題を解決/診断するために、Visual Studioで何を試すべきかわからない。手伝ってくれませんか?

編集:

ビルドが失敗していることがわかりました

  1. ステータスバーに表示されるテキストから。
    ここに画像の説明を入力してください

  2. 出力ウィンドウから:

    ========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========

5
ビルドが失敗したことをどのようにして知るのですか?
サム私はモニカを復活させる

5
出力タブに何かありますか?
Malice

15
Visual Studioの出力ウィンドウの詳細度を上げてみてください。問題を特定するのに役立ちます。冗長レベルを上げる方法:blogs.msdn.com/b/saraford/archive/2008/10/07/...
マキシムKornilov

6
VS2010を再起動したり、PCを再起動したりしましたか?
comecme

2
@NahuelI。別のプロジェクトでも同じような問題が発生しました。stackoverflowを検索すると、自分の質問が返ってきました:-)
Abhijeet

回答:


119

私はちょうど同じような状況に遭遇しました。私の場合、csprojファイルのBeforeBuildターゲットに表示されたカスタムアクション(Nuget.orgで利用可能なMSBuildVersioningパッケージから-http : //www.nuget.org/packages/MSBuildVersioning/ )は、エラーメッセージをトリガーすることなく失敗しました。通常の場所。

以下のように、「MSBuildプロジェクトビルド出力の詳細度」(最新のVisual Studioの[ツール]タブ[パス:ツール>オプション>ビルドと実行 ])を「診断」に設定することで、これを判断できました。これにより、カスタムアクション(私の場合はHgVersionFile)が失敗したことがわかりました。

変更された設定を示すVisual Studioからのスクリーンキャプチャ。


2
優れた検索Richard-両方の詳細レベルを診断に設定すると本当に役立つ情報
Dai Bok

3
私のような無知な人のために:この方法を使用するには、出力ウィンドウの内容を検索する必要があるかもしれません。ビルドエラーは#pragma warning disableステートメントによって非表示にされ、出力ウィンドウで「エラー」を検索したときにのみ表示されました。
sirdank 2016年

詳細度を診断に設定した後、System.OutOfMemoryExceptionが発生していることがわかりました。コンピュータの利用可能なメモリの98%を使用していました。これは素晴らしい答えです!
TxRegex 2017年

1
これにより、VisualStudio 2017の問題も解決されます。どうもありがとう。
H.アイディン2017

1
私はTFSでビルドするためにQueue New Buildを使用していましたが、2番目のタブでQueue Buildダイアログの詳細が表示され、ビルドログで問題を確認できました。
AaronLS

135

ビルド+ Intellisenseはエラーメッセージを飲み込みました。ビルドのみを選択すると、それらが表示されました。

スクリーンショット


これらのどれもがエラーを示さない状況に入りました:(
Imad

1
うわー、これは私にとっては非常にうまくいきました.VS 2019の新しいバージョンでは、これは一体何なのでしょうか。ありがとう!
カーター

1
@AbuAbdullahは私のために働いた。他の人を助ける上で良い仕事。
ナム

ありがとう、私の日を救った
ビクラム・リンブ

59
  • ソリューションに複数のプロジェクトが含まれている場合は、一度に1つずつビルドしてみてください。
  • Visual Studioを再起動してください。
  • コンピュータを再起動してみてください。
  • すべて再構築」を試す
  • ソリューションのクリーンアップ」を試してから、「vspscc」ファイルと「vssscc」ファイルを削除してから、Visual Studioを再起動してから、「すべて再構築」してください。

105
そしてそれが役に立たないとき、私はただ新しい仕事を見つけるべきですか?
Alex Zhukovskiy

2
VS2013を再起動するだけで役に立ちました。リソースが限られたVMで作業していましたが、それがそれと関係があるかどうかはわかりません。
Jmaurier

2
この問題が発生している場合、ソリューションをクリーンアップすることはできません。
H.アイディン

1
私を助けたのは、VSのすべてのインスタンスを閉じ(障害のあるインスタンスを閉じるには不十分)、次に.vsフォルダーを削除してVSを再起動することです。
EliSherer



9

サッセの答え詳しく説明したいと思います

Visual Studio 2015 Update 2の問題を解決するには、各プロジェクトを一度に1つずつビルドし、各ビルド後に出力ウィンドウを確認する必要がありました。

1つのプロジェクトで

"型または名前空間名 'SomeNamespace'が名前空間 'BeforeSomeNamespace'に存在しません(アセンブリ参照がありませんか?)"。

[エラーリスト]ウィンドウにエラーはありませんでしたが、アセンブリの[参照]の下に黄色の警告サインがありました。

次に、参照プロジェクトが4.5.1と参照プロジェクト4.6.1をターゲットにしていることを確認しました。4.6.1を4.5.1に変更すると、全体的なビルドが成功しました。


1
まあ、一度にプロジェクトをビルドする必要はないかもしれませんが、1つ確かなことは、出力ウィンドウを注意深く見て(メモ帳にコピー/貼り付けて、Ctrl + Fを使用して)、「欠けている」という単語がないかどうかを確認することです。エラーリストには表示されませんが、ソリューションが壊れるのは確かです。-.-
Dovydas Navickas 16年

5

何も機能しなかったので、.suoファイルを削除し、VSを再起動し、投影をクリーンアップすると、ビルドが機能しました。


5

この質問には複数の回答があるようですので、誰かの時間/ストレスを節約できることを願って、個人的な経験から私のものを追加します。

ソリューション内のすべてのプロジェクトが同じ.NETバージョンをターゲットにしていることを確認してください。

OPと同様に、エラーはありませんでしたが、ビルドは失敗し続けました。ただし、1つのプロジェクトが、それを参照しているプロジェクトとは異なる.NETバージョンを対象にしていることを示す警告エントリが1つありました(数百の役に立たないXML警告の間に埋め込まれています)。全体の問題は、私のソリューション内の1つのプロジェクトが.NET 4.5.2をターゲットにし、残りが4.5.1をターゲットにしていることでした。それはすべきである(それは単なる警告だったので、なぜ)が、残念ながら、それはビルドを壊したこの食い違いでも動作します。

奇妙な部分は、しばらくの間正常にビルド/実行されたことですが、突然ビルドが失敗し、この問題が発生しました。.NETのターゲットバージョンの違いについて不平を言うために何をしたかはわかりませんが、Visual Studioには解決できない謎がいくつかあるように感じます。


1
新しいプロジェクトを追加したところ、.NETターゲットフレームワークのバージョンが異なっていたことがわかりました。これを修正したところ、ビルドはまだ失敗しましたが、ビルドを壊しているエラーを確認できました。ありがとう。
Fijjit


3

最初に「ソリューションをクリーンアップ」し、次にソルンを再構築します。

機能しない場合は、ソリューションを閉じてソリューションを再起動します。

これらのことを試して、うまくいくことを願ってください。


3

他の可能性としては、Visual Studioを管理者として実行する必要があります。これは、ローカルIISサーバーへの展開またはその他の展開の必要性に関連している可能性があります。


3

これは、参照されているプロジェクトの1つが現在のプロジェクトよりも高いバージョンの.NET Frameworkである場合に発生する可能性があります。


3

私も同じ問題を抱えていて、この問題をエラーリストオプションの「ビルド+インテリセンス」まで追跡しました。

このオプションを選択すると、リストにエラーは表示されません。「ビルドのみ」に切り替えると、エラーが期待どおりに表示されます。

Visual Studioのバグのように見えます。Visual Studioを再起動すると、この問題は解決しました


2

新しいプロジェクト( "TestCleaner"と呼ばれます)をソリューションに追加した後、同様の問題が発生しました:ビルドは失敗し、エラーは発生しませんでした。

私は出力の冗長性を増やし(Richard J Fosterの指示を参照)、「失敗」を出力で検索しました。失敗しているプロジェクトとその理由をすぐに発見しました。プロジェクト "TestRunner"が " エラーCS0246:タイプまたは名前空間名 'TestCleaner'が見つかりませんでした"で失敗しました(コードで問題が強調表示されていませんでした)。

TestRunnerの参照をチェックして、TestCleanerへの参照が未解決としてマークされていること、およびパスが参照プロパティにないことを確認してください。削除して追加し直しても問題は解決しませんでした。繰り返しますが、その理由はありません。

未解決の参照

最終的に原因を発見しました。「TestCleaner」は他のプロジェクトとは異なるターゲットフレームワークを使用していました。.Net 4.5.2でした。他は4.5でした。


2

完了のために、そしておそらく将来同じエラーが発生する誰かを助けるために、私はMahappsメトロインターフェイスを使用して1つのウィンドウのXAMLを変更しましたが、コードビハインドで部分クラスを変更するのを忘れていました。その場合、エラーや警告なしにビルドが失敗し、設定からの出力の詳細度を上げることでそれを見つけることができました。

エラーペイン

出力ペイン


5
また、エラーフィルターで「ビルド+インテリセンス」ではなく「ビルドのみ」を選択します。
niico

2

同じ問題がありました。エラーリストウィンドウには、[含まれるアイテムを表示]と[生成された問題を表示]の2つのドロップダウンがあります。これらの名前は、ドロップダウンにカーソルを合わせると表示されます。「生成された問題を表示」ドロップダウンが「ビルド+ IntelliSense」に設定され、「ビルドのみ」に変更した後、エラーがリストに表示されました。


2

私にとって、それTarget Frameworkは問題でした。

私のプロジェクトTarget Frameworkはで4.5.2あり、参照プロジェクトTarget Frameworkはでした4.6.1

プロジェクトをに更新Target Frameworkする4.6.1と、問題は修正されました。


1

私も同じ問題に直面しました!binフォルダーを削除してを再起動するだけVSです。それで全部です。でテスト済みVS 2013


binとobjフォルダーを削除してこれを解決しようとすると、修正されました。また、objフォルダーを削除するには管理者権限が必要なため、非常に奇妙なことが起こりました。
DAG

1

私にとってそれを解決したの.vsは、ソリューションのルートからフォルダーを削除し、Visual Studioを再起動することでした。

また、エラーリストペインにエラーが表示されていなくても、ビルドからの出力にはエラーが残っているということも重要です。


1

Powershellコマンドラインからプロジェクトをビルドしてみてください:

dotnet build

次に、Visual Studioがビルドエラーメッセージを表示して非表示を再生している場合でも、コマンドライン出力でエラーを確認できます。


0

これは、asp.netプロジェクトに新しいページを追加した後に起こりました。

私がしたことは、ページを除外して、それを再び正常にビルドできるようにすることでした。

次に、すべてのコードがコメント化されたページを追加しました。成功。

次に、コードを少しずつコメント解除すると、すべて機能しました。


0

いくつかのフォームを削除した後も、同じ問題が発生しました。コードにアクセスして、削除したコントロールの1つに「定義の表示」を実行すると、エラーが発生しました。

私は自分のプロジェクトの1つでより高いフレームワークもターゲットにしていたので、それも問題だったのかもしれません。


0

私はすべてを試しましたが、私の場合何もうまくいきませんでした、そして私はこれらの言及された設定を変更しました、それは私のために問題をかなりうまく解決しました。後者の視聴者を助けることができるかどうか試してください。これらの設定は状況によって異なる可能性がありますが、最初に保持したものと同じ構成設定を使用して、すべてのDLLをビルドしてください(画像に記載されています)。構成設定

画像はこちら。

乾杯!


0

nugetパッケージ 'Microsoft.Net.Compilers'がインストールされている場合は、それがVisual Studioのバージョン(ビルドツールのバージョン)に適合していることを確認してください。

バージョン1.xはC#6.0(Visual Studio 2015およびアップデート)を意味します。たとえば、1.3.2

したがって、VS2015を使用する場合は、1.x以上のバージョンにアップグレードしないでください。

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


0

古いマシンに本当に古いプロジェクトがありました。マシンをオフにすると、プロジェクトが正しくビルドされていました。今日、ビルドエラーが発生しますが、エラーメッセージは表示されません。上からの提案のいくつかを試した後、運はありません。

Visual Studio 2015では、[ツール]> [オプション]> [プロジェクトとソリューション]> [ビルドと実行]で[詳細なMSBuild]をオンにしました

ビルドに関する詳細はほとんどありませんでしたが、エラーはありませんでした。その後、拡張機能と更新プログラム([ツール]> [拡張機能と更新プログラム])を確認しようとしたところ、更新が必要なものがいくつか見つかりました。

Nugetを更新した後、Nugetパッケージが原因でした-ビルドは成功しました。

ここに画像の説明を入力してください



0

すべてが機能しないため、プロジェクトをソリューション(.sln)として開いたときにエラーが表示されず、プロジェクトをプロジェクトとして開いたときにエラーが表示されることがわかりました。


0

同じ問題が発生しましたが、[ツール] -> [オプション] -> [プロジェクトとソリューション] / [ビルドして実行] -> [ MSBuildプロジェクトビルドログファイルの詳細度[ 診断 ]]を変更しました。VSが[エラー]タブにエラーを表示しないいくつかの理由により、このオプションはログにエラーを表示します。

ここに画像の説明を入力してください

上記の設定を行い、メモ帳/テキストエディターの出力コピーでエラーを検索します。すべてのエラーが表示されます。


0

Visual Studioを再起動するとうまくいきました。また、Visual Studioを通常どおり再起動してみてください(管理者として実行しないでください)。システムを再起動して、上記の手順を繰り返してください。


0

この症状を再現する別の方法:

既存のソリューションに新しいプロジェクトを追加し、ビルドの出力で「タイプまたは名前空間名Xが見つかりません...」などのエラーが報告されましたが、エラーリストにエラーが表示されませんでした。

私が参照したクラスは、同じソリューションの他のプロジェクト(参照された)にありました。

新しいプロジェクトで誤って以前のバージョンの.netを選択したことがわかりました。他のプロジェクトと同じバージョンに変更すると、すべてがエラーなしでビルドされました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.