web-dev-qa-db-ja.com

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

まったく同じ問題を抱える別の質問があることは知っていますが、それらすべての答えをたどってみましたが、誰も助けてくれませんでした。 :(( これが質問でした。

新しいASP.NET MVCプロジェクトを作成し、ソリューションのいくつかの '.dll'に参加しました。プロジェクトをビルドしようとすると、5つのライブラリのうち3つで以下に示すエラーメッセージが表示されます。

Error   CS0006  Metadata file 'C:\Users\...\source\Database\bin\Debug\DataAccessLayer.dll' could not be found   Logic   C:\Users\...\source\Logic\CSC   1   Active

Error   CS0006  Metadata file 'C:\Users\...\source\Logic\bin\Debug\Logic.dll' could not be found    PTS2-MVC    C:\Users\...\source\PTS2-MVC\CSC    1   Active

Error   CS0006  Metadata file 'C:\Users\...\source\PTS2-MVC\bin\PTS2-MVC.dll' could not be found    PTS2-MVC.Tests  C:\Users\...\source\PTS2-MVC.Tests\CSC  1   Active

その.dllのbin\debugフォルダーに移動すると、空であることがわかります。エラーメッセージが表示されない他の.dllは空ではありません。しかし、私はこれを修正する方法や、これを実現するために何をしたかについて、無知です。

最も一般的な答えは、solutionpropertiesおよびconfigurationおよびuncheck->applyに移動します->checkおよびapply再度、しかしそれは機能しませんでした

52
Svenmarim

問題は、プロジェクトに他のいくつかの通常のエラーメッセージがあり、どうやらそれらを修正した後、プロジェクトを再度クリーンアップしてビルドしたときに、すべての.dllが成功したことです。

プロジェクトに他のエラーメッセージがないことを確認し、もしあれば、それらを最初に修正してください!

59
Svenmarim

このエラーの修正手順:MetaData File .dllが見つかりませんでした。

  1. すべてのプロジェクトを消去します。

  2. すべてのプロジェクトをアンロードします。

  3. すべてのプロジェクトをリロードします。

  4. ソリューションの再構築。

その後、問題は解決しました。

15
rjay dadula

私の場合、エラーが発生しましたが、VSによって適切に解析されず、「エラーリスト」ウィンドウに表示されました。それを見つけるには、ビルドウィンドウからol "出力"をよく見て、上から下に向かってメッセージを解析し、実際のエラーを解決します。 M $、修正してください!これは、世界の共同開発者の膨大な時間の無駄です。

7
ebol2000

複数のプロジェクトを含むソリューションでこの問題が発生しました。

。csprojを複製し、そのコピーをソリューションに追加したことが原因だと思います。 。csprojファイルには<ProjectGuid>要素が含まれています。コピーしたプロジェクトのGUIDを新しいプロジェクトに設定しました。

また、次の手順を実行しました。

  1. ソリューションを閉じます
  2. Binフォルダーを削除
  3. すべてのobjフォルダーを削除します
  4. オープンソリューションとビルド
7
j00hi

プロジェクトフォルダーの名前を再確認します。私の場合、プロジェクトフォルダーにはスペースが含まれています。 git bashを使用してTeam Foundation Serverからプロジェクトを複製すると、フォルダー名のスペースが「%20」に変換されました。それらをスペースに戻すと、問題が解決しました。

5
roscoelee

次の手順に従ってこの問題を修正します。

  1. クリーンソリューション
  2. Visual Studioを閉じます
  3. プロジェクトディレクトリから/ binを削除する
  4. Visual Studioを再起動します
  5. 再構築ソリューション
4
Lucas Prestes

「ソリューションの再構築」後に「エラーリスト」ビューに他のエラーが表示されない場合でも、同じ問題が発生しました。ただし、「出力」ビューで、問題の背後にあるエラーが表示されました。

プライマリ参照「C:...\myproj.dll」は、「。NETFramework、Version = v4.6.1」フレームワークに対して構築されたため、解決できませんでした。これは、現在ターゲットになっているフレームワーク「.NETFramework、Version = v4.5」よりも高いバージョンです

これを修正すると、問題は解決しました。

3
Ian

私の場合、次のように、.csprojファイルを開いて手動で参照を追加する必要がありました(Microsoft.Extensions.Identity.Stores.dllがありませんでした)。

<Reference Include="Microsoft.Extensions.Identity.Stores">
  <HintPath>..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\Microsoft.extensions.identity.stores\2.0.1\lib\netstandard2.0\Microsoft.Extensions.Identity.Stores.dll</HintPath>
</Reference>
2
toutecrimson

私にとって、掃除と建築はうまくいきませんでした。プロジェクトのアンロードが機能しませんでした。 Visual StudioまたはPCを再起動しても機能しませんでした。これが機能しました:

エラーをスローしている各プロジェクトに移動し、[参照]で、問題のあるプロジェクトへの参照を削除して、再度追加します。これで問題が解決します。

この問題は、プロジェクトの移動(たとえば、フォルダー内への移動)に関連しているように見えます。次に、それを参照する別のプロジェクトにパスがあり、パスが見つかりません。

2
David Perez

私は同じ問題を抱えています、問題はソリューションパスに名前にスペースがあり、何らかの理由でパッケージを解決できないということでした...名前にスペースのないソリューションの名前を変更するだけでリポジトリを再度ダウンロードします。

例:=

/Repo/Project Name/src

あるべき

/Repo/ProjectName/src
2
D__

Visual Studioを閉じ、ソリューションの.suoファイルを見つけて削除し、Visual Studioを再度開きます。

1
Graham Laight

もう1つ確認する必要があるのは、参照プロジェクトのターゲットフレームワークです。これにより、呼び出し元のプロジェクトが同じまたはそれ以降のバージョンのフレームワークを使用していることを確認できます。

私はこの問題を抱えていました。以前に提案された答えをすべて試した後、フレームワークをチェックしました。参照されているプロジェクトの1つは、呼び出し元のプロジェクトが4.5.2のみの場合に4.6.1を対象としていました。

1
Rob

すべてのビンを削除するためにbashでこのコマンドを実行するとうまくいきました

$ find . -iname "bin" -o -iname "obj" | xargs rm -rf

しかし、それが他の誰かのために働くことを保証することはできません

また、すべてのbinファイルが削除されることに注意してください。したがって、すべてのプロジェクトを再構築する必要があります。明らかに、使用する前に関連するディレクトリにcdするのが最善です。

1

すべてのプロジェクトがロードされていることを確認します。私の場合、プロジェクトの1つがアンロードされ、プロジェクトをリロードするとエラーがクリアされます。

1
Maryam

私の場合、私は同じエラーに直面していました。私のプロジェクトソリューションの1つは、異なるNuGetの場所からアセンブリを参照することでした。このエラーを解決して再構築するために、正しい場所に変更しました。プロジェクトが正常にビルドされ、他のすべてのエラーが消えたとすごいです。

1
Mukesh Kumar

同じプロジェクトに同じ名前の2つのファイル(および2つのクラス)がありました。

0
JohnB

私にとってうまくいったのは:

エラーのある参照されたNugetパッケージをアンインストールしてから再インストールします。

0
Andrew

この問題は、ソリューションの名前を変更し、.netフレームワークが古いソリューションを見つけられない場合に発生します。

これを解決するには、ソリューションの古い名前とそのすべての依存関係を見つけて、新しい名前に置き換える必要があります。ファイルエクスプローラーで物理ファイルを参照する必要がある場合は、そうします。

通常影響を受けるファイルは、AssemblyInfo.cs.slnおよびProperties > Application > Assemblyの名前とデフォルト名前空間です。必ず新しい名前で更新してください。

ファイルエクスプローラーを開きます。古い名前のフォルダーがまだ存在する場合は、削除する必要があります。次に、エラーがなくなるまで、ソリューションをクリーニングしてビルドします。 (必要に応じて、特に影響を受けるプロジェクトを1つずつクリーンアップしてビルドします。)

0

これと同じエラーが発生しました。私の場合、他のライブラリーをプロジェクトにプロジェクトに含めることで参照するライブラリー(commsLibraryと呼びます)を作成しました。後で、プロジェクトをビルドしてcommsLibraryを追加すると、ビルドするたびにメタデータファイルが見つからないというエラーが発生しました。そこで、通信ライブラリが現在のプロジェクトを参照しているライブラリを追加し、ビルドすることができました。

0
Joseph Mawer

私のために働いたもの:

パッケージマネージャーコンソール(Visual Studio 2019 Comunity):

Install-Package NuGet.CommandLine
nuget locals all -clear

ソリューションを再構築します。

0
s3c

ソリューションをクリーニングすると、Visual Studio 2017でこの問題が発生しました。プロジェクトのアンロード/リロードや、それ以上のクリーニングでも違いはありませんでした。動作したのは、Visual Studioを閉じて再起動することだけでした。

0
John81

同じ問題がありました。私の問題は、チームの他の誰かがクラスフォルダーを移動し、プロジェクトがそれを探していたことでした。

私にとっては、44個のエラーがありました。 43は.dll(依存関係の検索)で終了し、エラーリストの最初の行は.cs(実際のクラスの検索)で終了しました。 clean-build、clean、unload、reload、buildを試みましたが、何も機能しませんでした。プロジェクトでクラスを見つけて、それを削除しました。とにかく使用不可と表示されていたため、クリーンビルドが続きました。

それは私のためにトリックをしました!お役に立てれば。

0
Burke

私は同じ問題を抱えていました メタデータファイル「.dll」が見つかりませんでした から解決策を試しました

しかし、これらのどれも機能しませんでした。

試行錯誤の後、プロジェクトをアンロードして再ロードすることで修正し、構成ファイルをリセットして問題を修正しました。

0
Amad Malik

私の場合、この問題を引き起こしていたチームエクスプローラーのgitメニューから1つのファイルを直接削除しました。ソリューションエクスプローラーをチェックしても、削除されたファイルは参照されていないファイルとして表示されていました。ソリューションエクスプローラーからそのファイルを削除すると、プロジェクトを正常にビルドできました。

0
p4ulinux

私の場合、テストを実行するとエラーCS0006が発生しました。リリースモードでテストを実行することが判明しました。デバッグモードに切り替えると、このエラーが修正されました。

0
izimiky

非常に多くのトラブルに直面した後、私が見つけた解決策を以下に示します。

  1. プロジェクトフォルダを開きます。
  2. find Your_Project_Name.csproj [Visual C#プロジェクトファイル(.csproj)]
  3. 任意のテキストエディターでそのファイルを開き、不足しているファイルItemGroupを見つけます。

    <ItemGroup> <None Include="..." /> </ItemGroup>

  4. そのItemGroupを削除し、プロジェクトをもう一度開いてビルドします

  5. その参照が重要な場合は、もう一度追加してください。
0