メタデータファイル「.dll」が見つかりませんでした

2009年09月14日に質問されました。  ·  閲覧回数 850.9k回  ·  ソース

Oliver picture
2009年09月14日

WPF、C#3.0プロジェクトに取り組んでいますが、次のエラーが発生します。

Error 1 Metadata file
'WORK=- \Tools\VersionManagementSystem\BusinessLogicLayer\bin\Debug
\BusinessLogicLayer.dll' could not be found C:\-=WORK=- \Tools
\VersionManagementSystem\VersionManagementSystem\CSC VersionManagementSystem

これが私のユーザーコントロールを参照する方法です:

xmlns:vms="clr-namespace:VersionManagementSystem"
<vms:SignOffProjectListing Margin="5"/>

ビルドが失敗するたびに発生します。 ソリューションをコンパイルする唯一の方法は、すべてのユーザーコントロールをコメントアウトしてプロジェクトを再ビルドすることです。その後、ユーザーコントロールのコメントを解除すると、すべて問題ありません。

ビルドの順序と依存関係の構成を確認しました。

ご覧のとおり、DLLファイルの絶対パスが切り捨てられているようです...長さにバグがあることを読みました。 これは考えられる問題ですか?

それは非常に煩わしく、コメント、ビルド、コメント解除をしなければならず、ビルドは非常に面倒になりつつあります。

回答

Matt_Bro picture
2013年07月18日
971

私はちょうど同じ問題を抱えていました。 Visual Studioは、参照されているプロジェクトをビルドしていません。

書面による指示:

  1. ソリューションを右クリックし、[プロパティ]をクリックします。
  2. 左側の[構成]をクリックします。
  3. 見つからないプロジェクトの[ビルド]の下にあるチェックボックスがオンになっていることを確認します。 すでにチェックされている場合は、チェックを外し、[適用]をクリックして、もう一度チェックボックスをオンにします。
  4. (オプション)ソリューションプロパティのリリースモードとデバッグモードの両方でこれを行う必要がありました。

スクリーンキャプチャの手順:

  • 彼らは絵は千の言葉の価値があると言います。 GIFをクリックしてズームインすると、簡単にフォローできるようになります。

Gif Instructions

corvuscorax picture
2014年04月22日
236

これは、新しいバージョンのVisual Studioでも発生する可能性があります(Visual Studio 2013で発生したばかりです)。

もう1つの方法は、Visual Studioを閉じて、 .slnファイルの隣にある.suoファイルを削除することです。 (次にSave all (またはVisual Studioを終了したとき)に再生成されます)。

別のマシンのソリューションに新しいプロジェクトを追加してからリビジョンをプルするときにこの問題が発生しましたが、他の場合にも.suoファイルが破損し、非常に奇妙なVisualStudioの動作につながる可能性があります。それを削除することは私がいつも試みることの1つです。

.suoファイルを削除すると、ソリューションのスタートアッププロジェクトがリセットされることに注意してください。

.suoファイルの詳細はこちらです。

jordan koskei picture
2015年12月16日
191

提案された答えは私にはうまくいきませんでした。 エラーは別の問題のおとりです。

わずかに異なるバージョンの.NETをターゲットにしていて、コンパイラーによって警告としてフラグが付けられていることがわかりましたが、ビルドが失敗していました。 これは、警告ではなくエラーとしてフラグが立てられているはずです。

Vikram picture
2014年05月05日
105

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

セクション(1):

一般的な解決策:

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

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

  1. Visual Studioを再起動して、ビルドを再試行してください。

  2. 「ソリューションエクスプローラー」に移動します。 ソリューションを右クリックします。 プロパティに移動し「構成マネージャー」に移動します。 [ビルド]の

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

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

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

  5. 不足している.dllのパスを確認してください。

    不足している.dllのパスを確認してください。 パスにスペースまたはその他の無効なパス文字が含まれている場合は、それを削除して、ビルドを再試行してください。

    これが原因である場合は、ビルド順序を調整してください。


第2節):

私の特定のケース:

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

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

ブログ投稿に出くわしました: TFSエラー-ソースファイルを開くことができませんでした(「不特定のエラー」)

そのブログ投稿に記載されている手順を試してみたところ、 「ソースファイルを開けませんでした(「不特定のエラー」)」というエラーを取り除き、驚くべきことに他のエラー(「メタデータファイルが見つかりませんでした」)を取り除きました上手。


セクション(3):

この話の教訓:

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

Eric Schneider picture
2016年04月08日
41

私の場合、これは.NETFrameworkのバージョンの不一致が原因でした。

1つのプロジェクトは3.5で、もう1つの参照プロジェクトは4.6.1でした。

Roffers picture
2015年05月28日
28

Visual Studio 2013を閉じて再度開くと、うまくいきました。

Alex Stephens picture
2014年11月27日
21

さて、前の回答では何もうまくいきませんでした。そのため、開発者としてここで何が起こっているのかを本当に理解しようとする必要があるのに、なぜクリックして期待しているのかを考えさせられました。

この誤ったメタデータファイル参照をどこかに保持する必要があることは、私には明らかなように思われました。

.csprojファイルをすばやく検索すると、有罪の行が見つかりました。 <itemGroup>というセクションがあり、古い誤ったファイルパスにぶら下がっているように見えました。

<ItemGroup>
    <ProjectReference Include="..\..\..\MySiteOld\MySite.Entities\MySite.Entities.csproj">
        <Project>{5b0a347e-cd9a-4746-a3b6-99d6d010a6c2}</Project>
        <Name>Beeyp.Entities</Name>
    </ProjectReference>
...

だから本当に簡単な修正:

  1. .csprojファイルをバックアップします。
  2. .csprojファイルで間違ったパスを見つけて、適切に名前を変更します。

をいじる前に、必ず古い.csprojをバックアップしてください

masphei picture
2015年03月27日
15

私の場合、インストールしたディレクトリが間違った方法でインストールされています。

ソリューションパスが「MyProject%2c Very Popular%2c Unit Testing%2c Software and Hardware.zip」のようなものである場合、メタデータファイルを解決できません。おそらく、%2cのような無効な単語を防ぐ必要があります。

パスの名前を通常の名前に変更すると、問題が解決しました。

Andrew picture
2019年11月17日
14

Visual Studio 2019これは私のために働いた:

  1. VisualStudioを閉じる
  2. 非表示の.vsフォルダーを削除します
  3. Visual Studioを再度開き、ソリューションを再構築します。
user1678541 picture
2012年09月15日
13

私もこの問題に遭遇しました。 まず、[ビルド]を右クリックして、DLLプロジェクトを手動でビルドする必要があります。 その後、それは動作します。