メタデータファイル…プロジェクトのビルド時にエラーが見つかりませんでした


98

Visual Studio 2008を起動するたびに、プロジェクトを初めて実行しようとすると、エラーCS0006メタデータファイル...が見つかりませんでした。私が完全なソリューションの再構築を行う場合、それは機能します。

ソリューションに関するいくつかの情報:

  • デバッグモードでビルドしていますが、Visual Studioは、リリースフォルダーにdll:sが見つからないというメッセージを出します。

  • Visual Studioが不満を言うプロジェクトは、ソリューションの他の多くのプロジェクトで使用されています。

  • すべてのプロジェクトのデフォルトの出力パスを...... \ build \ debug \ ProjectNameおよび...... \ build \ release \ ProjectNameにそれぞれ変更しました。(1つのディレクトリにすべてのビルドファイルを取得するだけです)

  • 別の解決策でも同じ問題があります。

  • ソリューションはゼロから作成されました。

  • ソリューションには9つのプロジェクトがあります。dotnet 3.5を使用する1つのWPFと8つのクラスライブラリ。

この問題の原因は何ですか?


回答:


133

「メタデータが見つからない」という同様の問題がありました。ソリューションプロパティで、各プロジェクトのビルド/構成マネージャーで[ ビルド]チェックボックスがオンになっていることを確認します。


16
見つからない場合は、ビルド/構成マネージャーは、[ビルド]メニュー-> [構成マネージャー]メニュー項目を参照します。
ジョンカーラック

4
私はこの問題に遭遇しました。理由は、参照されたプロジェクトが正常にビルドされない原因となっている別のエラーでした。これはクリーンなチェックアウトであったため、以前の成功したビルドからのdllファイルは存在しませんでした。エラーを修正し、参照プロジェクトが正しくビルドされることを確認してください。
Moulde 2013年

9
上記のニックによって指摘されているように、時々これでも役に立たない。その場合、VSを閉じて再起動することは常に私にとってうまくいきました。YMMV。
philofinfinitejest 2013年

3
問題は解決しませんでした。VSを再起動しましたが、問題は解決しませんでした。
Shimmy Weitzhandler 2013

26

これは通常、エラーをスローしているソリューションとは異なるソリューションで参照されているプロジェクトが原因です。他のソリューションをクリーンアップするか、コードを分岐すると、おそらくこのエラーが表示されます。解決策は、「メタデータが見つかりません」エラーのリストを下にスクロールして、プロジェクトへの参照を確認することです。9/10回、このソリューションにないプロジェクトへの壊れた参照が表示されます。プロジェクトを追加して参照エラーを修正し、再ビルドします。それで解決するはずです。

(私は今日これに遭遇しました、そして過去にありました、そしてこれはいつも働いていました)


私のソリューションにあるプロジェクトだけが不満を持っています。
マフィンマン

7

私はこの問題を抱えていましたが、それが役立つかどうかはわかりませんが、同じプロジェクトの2つの異なるバージョンが2つの異なるソリューションによって参照されていることが原因でした。最初に正しいプロジェクトを参照してソリューションをビルドすると、2番目のソリューションは正常にビルドされますが、1番目のソリューションをクリーンアップして2番目のソリューションをビルドしようとすると、これらのdll参照エラーメッセージで失敗します。

私にとっての解決策は、誤って複製された同じ名前の2つのプロジェクトがあり、古い正しくないプロジェクトへの参照を削除して、新しいプロジェクトへの参照を追加することを理解することでした。

いずれにせよ、これらのメッセージはちょっとしたニシンのようですが、私はあなたのビルド出力をチェックして、ビルドに失敗した最初のプロジェクトを見つけ、そのプロジェクトの参照を非常に注意深くチェックします。


1
これらのメッセージの不正確さに関するメモの+1。ソリューションで参照されているアセンブリへのパスが壊れていたため、これは私にとってはうまくいきました。それらを読んで再コンパイルすることで問題は解決しました。
E.ロドリゲス

6

確認するもう1つのことは、パスの長さです...メタデータファイルが見つからず、コンパイルエラーも発生します...フォルダーの名前を短いパスとボイラーに変更しました。フォルダ。


5

私にとっては、別のプロジェクトで参照されているプロジェクトがありました。ソリューションエクスプローラーウィンドウの参照リストで壊れていることを示していませんでしたが、とにかく削除して再度追加しました。これで問題なくビルドできます!


確かに、すべての参照を削除して、もう一度追加しました。

3

私はVS2012でこれらのすべての手順を実行しましたが、ソリューション全体をビルドするときにこの問題に遭遇し続けました(個々のプロジェクトはエラーなしで正常にビルドされました)。

ソリューションエクスプローラーでソリューションを右クリックして[ビルドの順序]を選択すると、ソリューションの再ビルドにVSが使用している順序を確認できることがわかりました。それはたぶん外に出ている可能性があります。

[依存関係]タブをクリックし、ソリューション内の他のプロジェクトに依存するプロジェクトを選択して、依存するプロジェクトを確認することにより、ビルド順序を修正できます。問題がなければ、ソリューションを再構築したら、問題ありません。


2

私がこれまでVS2005と今のVS2008でこれを解決した方法は、すべての依存関係が正しく、参照がDLLではなくプロジェクトを指していることを確認することです。次に、各プロジェクトを調べ、依存関係の順序で手動でビルドします。最後のビルドが完了すると、完全なソリューションビルドとその罰金を実行できます。

この回答は、質問が15か月以上前のものであることを知っているので、他の人のために後で参照するためのものです。

乾杯


2

いくつか指摘したいことがあります。

MSBuildでビルドファイルとしてソリューションファイルを使用している場合は、ビルドする順序で、つまりプロジェクトの相互依存関係に基づいて、ソリューションファイルにプロジェクトを追加してください。他のプロジェクトが依存するソリューションにプロジェクトがある場合、これは非常に重要になりますが、参照は「プロジェクト参照」ではなく「参照」として追加されています。

ペストのようにそれを回避する必要がありますが、そうする必要がある場合は、少なくとも依存プロジェクトがソリューションファイルの前にあることを確認してください。

Visual Studioがビルド順序を生成する方法は、MSBuildが行う方法とまったく同じではないことに注意してください。これは、MSBuildは主に依存関係が何であるかを伝えるためにプロジェクトファイルに依存しているのに対し、Visual Studioはそれらをsoltuionファイルに保存することもできるためです。したがって、Visual Studioがソリューションを完全に構築する状況を確認できますが、MSBuildはそれを実行できません。

プロジェクトがソリューションファイルに表示される順序と、プロジェクトがソリューションファイルのWebサイトプロジェクトのProjectReferences要素にリストされる順序を手動で微調整しなければならない場合がいくつかありました。

上記の情報がお役に立てば幸いです。


2

たとえば、LinqtoSQLデータコンテキストを使用していて、.designer.csファイルが見つからない場合、メタデータファイルが見つかりませんでしたというエラーが表示されます。

designer.csファイルの再作成は簡単です。

xmlビューを使用してdbmlを開きます。空白行を追加して削除し、保存します。これで、designer.csファイルが再生成されます。

状況によっては、データコンテキストの分離コード内にコードがある場合、この回避策は機能しません。この場合、背後のコードからコードを取り出し、メモ帳などに入れます。DCから行を追加してから削除するというトリックを実行して保存します。コードを元に戻して保存します。


2

SVNからプロジェクトを更新するたびに同様の問題が発生します。
ASP.NETの別のソリューション:

  1. IDEを閉じます。
  2. のファイルを削除しますC:\WINDOWS\microsoft.net\framework\v…\Temporary ASP.NET File\

1

私もこのエラーを経験し、原因はプロジェクトがそれ自体を参照していることでした。私はそれがどのように起こったかはわかりませんが、参照と出来上がりを削除しただけです


1

まず、各プロジェクトの[ビルド]-> [構成マネージャー]で[ビルド]チェックボックスがオンになっていることを確認します。

ビルド->構成マネージャーメニューですべてのプロジェクトを既に選択していて、VSトリックの再起動が機能しない場合は、ファイル(dllまたはcs)の参照を見つける必要があります。プロジェクトを作成し、それらの参照を手動で削除します。それらのファイル/リファレンスは黄色のアイコンで表示されます。エラーは間違いなく、調査する必要があるソリューションのプロジェクトをガイドします。

このエラーの理由は、Windowsエクスプローラーでファイルを手動で削除し、VSが参照を更新しておらず、存在しないファイルを見つけようとしているためです。


1

私の場合、私の解決策の1つがコンピューター(VBIDE)にないものを参照していることがわかりました。問題のある参照を削除すると、残りのプロジェクトは正しくビルドされました。それが誰かを助けることを願っています。

そして別の状況では、あるプロジェクトから別のプロジェクトにいくつかのコードを移動しました。そのコードの一部はJson.netを参照していました。Json.netへの参照を手動で追加しましたが、それによって問題が発生しました。NuGetを介してJson.netをインストールすることで解決し、問題が解決しました。それが誰かを助けることを願っています。


0

同じことが起こりました。同じライブラリプロジェクト(.net 3.5)を参照するいくつかのソリューションがあります。1つはdebug / normal configでビルドされ、もう1つは他のコンパイラディレクティブ(sqlite / localモード)を使用してビルドされたときに、これが発生することに気付きました。両方のプロジェクトを同じディレクティブでビルドするだけで大​​丈夫です。


0

ソリューションに新しいプロジェクトを追加した場合は、これがビルドリストにあることを確認します(構成マネージャーを参照)


0

Matlabで生成されたdllファイルを含めようとすると、保存の問題が発生しました。そして、私は最後に、私が想定している証明書を意味する.ctfファイルと、.dllファイルと共に.dllの適切な操作に必要な.netmoduleをコピーすることで解決しました。そしてそれは実際にうまくいきました!したがって、私の提案は、.dllがうまくいくために他のファイルが必要かどうかを確認することです。


0

Windows 7 Ultimate 32 Visual Studio 2008 SQL Server v2005

同じエラーが発生しました。そして、プロジェクトの参照を削除して再度追加することにしました。参照されている各プロジェクトのデータベース参照が空白だったため、それらを元に戻すことができませんでした。

データベース参照を正しい設定にリセットすると、問題なくビルドできました。さらに、これは、VSSでソースコードを分岐させた後で、このプロジェクトを再構築する最初の試みでした。

幸運を


0

このエラーが発生したのは、アセンブリ名がプロジェクトで変更されたプロジェクトの依存関係の1つが原因でしたが、参照が更新されませんでした。したがって、参照を更新するか、アセンブリの名前を元に戻すと、修正されます。


0

EE-私の場合、問題はエンティティフレームワークがあるプロジェクトにあり、図を開いて任意のテーブルを2 cmドラッグし、保存します。VSはDBへのすべてのリンクを更新します...このプロジェクトをビルドしてソリューションをビルドします、Buildsssss。


0

(管理者アカウントでVS2010を実行していないため)私を修正した唯一のことは、環境変数VS120COMNTOOLSをシステム変数からユーザー変数に手動で移動することです。


0

ソースコントロールとファイルシステムに存在しないすべてのソースファイルのエントリを.csprojファイルから削除すると、うまくいきました。


詳細なアプローチ:

さて、私の次の答えは、すべてのソリューションの要約だけではなく、それ以上のものを提供します。

セクション(1):

一般的な解決策:

この種のエラーが4つあり(「メタデータファイルが見つかりませんでした」)、「ソースファイルを開くことができませんでした(「未指定のエラー」)」という1つのエラーがありました。

「メタデータファイルが見つかりませんでした」というエラーを解消しようとしました。そのため、私は多くの投稿、ブログなどを読んで、これらの解決策が効果的である可能性があることを発見しました(ここに要約します):

  1. VSを再起動して、もう一度ビルドしてみてください。

  2. 「ソリューションエクスプローラー」に移動します。Solutionを右クリックします。プロパティに移動します「構成マネージャー」に移動します。[ビルド]のチェックボックスがオンになっているかどうかを確認します。それらの一部またはすべてがオフになっている場合は、オンにしてから、もう一度ビルドしてみてください。

  3. 上記の解決策が機能しない場合は、上記の手順2で説明した手順に従ってください。すべてのチェックボックスがオンになっている場合でも、オフにしてからもう一度オンにして、ビルドを再試行してください。

  4. ビルド順序とプロジェクトの依存関係:

    「ソリューションエクスプローラー」に移動します。Solutionを右クリックします。「プロジェクトの依存関係...」に移動します「依存関係」「ビルド順序」の 2つのタブが表示されます。このビルド順序は、ソリューションがビルドされる順序です。プロジェクトの依存関係とビルド順序を確認して、他のプロジェクト(たとえば「project2」)に依存しているプロジェクト(たとえば「project1」)がそのプロジェクト(project2)の前にビルドを試みているかどうかを確認します。これがエラーの原因である可能性があります。

  5. 欠落している.dllのパスを確認します。

    欠落している.dllのパスを確認します。パスにスペースまたはその他の無効なパス文字が含まれている場合は、パスを削除してから、もう一度ビルドしてください。

    これが原因の場合は、ビルド順序を調整します。


第2節):

私の特定のケース:

VSを数回再起動することで、上記のすべての手順をさまざまな順列と組み合わせで試しました。しかし、それは私を助けませんでした。

そのため、遭遇した他のエラー(「ソースファイルを開くことができませんでした(「未指定のエラー」)」)を取り除くことにしました。

私はブログに出くわしました:http : //www.anujvarma.com/tfs-errorsource-file-could-not-be-opened-unspecified-error/#comment-1539

そのブログで言及されている手順を試してみたところ、「ソースファイルを開くことができませんでした(「未指定のエラー」)」というエラーを解消し、驚くべきことに、他のエラー(「メタデータファイルが見つかりませんでした」)も解消しました。


セクション(3):

この話の教訓:

エラーを取り除くために、上記のセクション(1)で述べたすべての解決策(およびその他の解決策)を試してください。上記のセクション(2)で述べたブログのように、何も解決しない場合は、ソースコントロールとファイルシステムに存在しないすべてのソースファイルのエントリを.csprojファイルから削除します


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