web-dev-qa-db-ja.com

参照されているコンポーネント「システム」が見つかりませんでした。 (またはその問題の他のコンポーネント)

問題:今日始めたばかりですが、ソリューションの外部にあるすべてのアセンブリへのすべての参照は、The referenced component 'SomeComponent' could not be found.ビルドしようとしたとき。これは、サードパーティのコンポーネント(すべて15個程度)とすべての.NET Frameworkアセンブリの両方で発生します。基本的には、同じソリューションの別のプロジェクトではないものです。

他のいくつかのソリューションをロードしようとすると、同じ問題が発生しました。ただし、新しいWinFormsプロジェクトの作成は問題なく機能しました。 (それをスクラッチすると、VSを再インストールする前に機能しましたが、現在は機能していません。新しいWinFormsアプリとWPFアプリを作成しましたが、デザイナーもアセンブリを読み込めません。3.5と2.0をターゲットにして、幸運。)

私が試したこと:

  • Visual Studioのインストールを修復する
  • コンピュータを再起動しています
  • / resetsettingsフラグを使用してVSを開始しました
  • 動作することがわかっている2日前のシステムの復元
  • VSのアンインストールと再インストール
  • SVNからのフレッシュチェックアウト

誰かがこれについて何か経験があり、これを再び機能させる方法を知っていますか?私の最強のグーグルフーが失敗したので、私はここで尋ねます。要求があれば、コミュニティWikiにマークを付けることができます。

更新:Vistaの修復オプションが表示されなかったため、Windowsを(同じバージョンに)アップグレードしようとしましたが、それでも問題は解決しません。関連していると思われるすべてのものを再インストールしました。これまでのところ、明日の前のいつか解決策が出ない限り、私はバックアップして再フォーマットしなければならないだけのように見えます。

Update2:データをバックアップして再フォーマットしただけなので、まだ試していないアイデアを確認できなくなったので、賞金をそのまま有効期限が切れてトップ投票の回答に残し、後でこの問題が発生する可能性のある他の人への参照。

35
Davy8

次のデバッグ手順の提案:プロジェクトデザイナー:参照->参照パスを確認して、システムおよびサードパーティコンポーネントへのパスが正しく表示されることを確認します。 (ドライブ文字のように古いMark I Eyeballをすり抜ける可能性があるものに注意してください。)

7
chaos

私も同じ問題を抱えていました。 NuGetに問題があることがわかりました。 *.csproj- File(テキストエディターで開いた)の次の部分を削除しました。これは私のために問題を解決しました:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
        <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.Microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>
59
Benjamin Jähn

私の場合、解決策は完全に異なりました。 NuGetのパスに問題があるように見えました(プロジェクトを別のソリューションに移動してから、再び戻したためです)。

.csprojを編集して、NuGetおよび関連パッケージへの参照をすべて削除しました。また、ソリューションフォルダーからパッケージフォルダーを削除しました。

その後、システムコンポーネントが魔法のように再現されました。

33
Nanki

私にもこのような問題が発生したのはそれほど昔のことではありません。

この問題は、ブランチからブランチにジャンプするときにgitが.exeを適切に作成しないことが原因であることがわかりました(パスにnuget.exeがあり、ブランチをジャンプするときに削除/追加されていました)。 nugetを実行しようとすると、Windowsはexeに適合します。

ブランチを何度もリセットした後、私は最終的にexeを適切に実行しました。次に、リポジトリ内のすべてのディレクトリのセキュリティがリセットされていることに気付いたので、それに対処する必要がありました。

その後、ビジュアルスタジオでニースの演奏が始まりました。

これが誰かを助けることを願っています!

3
MethodsofSanity

Fuslogvwを使用してアセンブリの負荷ログを確認してから、VSを実行してみてください。ランタイムがアセンブリを見つけてロードしようとしたときに、ランタイムによってキャプチャされた追加のエラーを確認できます。

Vistaでは、管理者としてfuslogvwを実行し、ログを保存するために明示的なパスを指定する必要がある場合があります。

別のインスタンスからアタッチするか、.NET SDKに含まれている基本的なデバッガーを使用してVisual Studioをデバッグすることもできます。

3
Paul Alexander

これは古い質問であることは承知していますが、最新バージョンのVisual Studio(2015)でも引き続き発生しています。私はそれを別の方法で修正しました。それは、質問があったときに利用できなかった可能性があるためです。基本的に、それはVSが.Net Libraryパッケージを見つけることができないという事実に関連しています。最新バージョンのVisual Studio(2015)で修正するには:

  • Solution Managerでソリューションを右クリックします。 「ソリューションのNuGetパッケージの管理...」を選択します
  • nuGetウィンドウで、[インストール済み]に移動します。
  • 「Microsoft.NetCore.UniversalWindowsPlatform」など、Microsoft.Netに関連するものがある場合は、名前を覚えてパッケージをアンインストールします。
  • 次に、参照タブに移動してパッケージを見つけ、再度インストールします。正しい必要なプロジェクトを選択することを忘れないでください。
  • すべてが大丈夫なはずです。

これが誰かに役立つことを願っています!

1
MosGeo

まあ、VS 2012 RCでエラーをクリックしてデバッグすると、エラーは消えます...

1
Harry

私はそれを言うのが嫌いですが、システムはかなり行き詰まっているようです。現在のインストールの修正を続行するよりも、OSを再インストールするほうが速い場合があるはずです。

あなたがこれを正しい精神で受け取れるように願っています...すみません。

1
Marc Gravell

ILDASMを使用して出力をチェックし、参照が正しく表示されていることを確認します。それらを正常に機能するアセンブリと比較し、何かが飛び出していないか確認します。

0
Coderer

ここで暗闇の中で撮影しましたが、同じ(同様の)問題に遭遇しました。私が遭遇した問題は、64ビットマシンがあり、64ビットと32ビットのサードパーティdllが混在するプロジェクトを実行していることに関連しています。解決策は、正しいビット(32v64)であることを確認し、プロジェクトを32ビットモードでビルドすることでした:プロジェクトのプロパティ>ビルド>プラットフォームターゲット:x86。

別のときにこれが発生したとき、私はすべての64ビットDLLを削除し、32ビットDLLで再インストールする必要がありました

HTH

0
Metro Smurf

また、同じソリューションの他のプロジェクトの参照に関する問題である可能性もあります。 1つのプロジェクトをビルドしたいだけでしたが、別のプロジェクトでの参照に関するこのメッセージが表示されました。他のプロジェクトの問題は正しかったが、メッセージは正しくなかったと思います。

  1. 別のプロジェクトに関するメッセージを期待していませんでした(他のプロジェクトは依存関係がなかったため、ビルドする必要はありませんでした)
  2. それが関係しているプロジェクトについて言及していなかったので、私はそれを「解釈」することができませんでした)。
0
Yahoo Serious