型または名前空間の名前 が名前空間 に存在しません (アセンブリ参照があることを確認してください)。

このエラーは、単純に参照設定が正しくされていないものなのだが、正しく参照設定を行ったにも関わらずエラーが解消されずにハマったことがあったのでメモ。実際は、やはり正しく参照設定が行われていなかったのだが(笑)。

型または名前空間の名前 が名前空間 に存在しません (アセンブリ参照があることを確認してください)。

参照元のソリューションにクラスライブラリのプロジェクトを追加しようとしたのだが、結論から言うと、.NET Framework のバージョンが合っていなかった。
で、落とし穴だったのが、微妙な違い。

参照元のバージョン: .NET Framework 4 Client Profile
参照先のバージョン: .NET Framework 4

Client Profile というのを調べてみると、

サーバ専用の機能を削除したサブセットで、軽快なインストーラーを作成できます

と、書いてある。
Microsoft .NET Framework 4 基本情報 - .NET Framework デベロッパー センター

とりあえず、バージョンの違いには特に気をつけなければいけないようだ。
昔は単に参照されていないとかそういう簡単な原因だったのだがね。同じバージョンでも違うのがあると別物として扱われるとは。

ちなみに、コンソールアプリケーションを新規作成するとデフォルトが .NET Framework 4 Client Profile になるのでハマったようだ……。

posted at 2022-01-09

updated at 2022-01-09

Xamarin.Forms 環境構築時をしている時に、NuGetでインストールされているのに、
何故か参照エラーが出ていました。

解消できたので備忘録を残します。

環境

  • Windows10 Home
  • Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz 3.40 GHz
  • Visual Studio community2022

依存関係がインストールされているか確認

ソリューションエクスプローラーから「依存関係」を見ても、
ツール > NuGetパッケージマネージャ > ソリューションのNuGetパッケージの管理 を見てもインストール済みであることを確認。

型または名前空間の名前 が名前空間 に存在しません (アセンブリ参照があることを確認してください)。

エラー内容

しかしなぜか以下のエラーがズラズラ出ていました。

エラー   CS0246  型または名前空間の名前 'System' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください)
エラー   CS0246  型または名前空間の名前 'Xamarin' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください)
エラー   CS0246  型または名前空間の名前 'Xamarin' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください)
エラー   CS0246  型または名前空間の名前 'ContentPage' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください)
エラー   CS0518  定義済みの型 'System.Void' は定義、またはインポートされていません
エラー   CS0518  定義済みの型 'System.Void' は定義、またはインポートされていません
エラー   CS0518  定義済みの型 'System.Object' は定義、またはインポートされていません
エラー   CS0518  定義済みの型 'System.Object' は定義、またはインポートされていません
エラー   CS0246  型または名前空間の名前 'EventArgs' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください)
エラー   CS0518  定義済みの型 'System.Object' は定義、またはインポートされていません
エラー   CS0103  現在のコンテキストに 'InitializeComponent' という名前は存在しません
エラー   CS0518  定義済みの型 'System.Object' は定義、またはインポートされていません
エラー   CS0103  現在のコンテキストに 'Launcher' という名前は存在しません
エラー   CS0518  定義済みの型 'System.String' は定義、またはインポートされていません
エラー   NU1101  パッケージ Xamarin.Essentials が見つかりません。ソース Microsoft Visual Studio Offline Packages には、この ID のパッケージが存在しません。
エラー   NU1101  パッケージ Xamarin.Forms が見つかりません。ソース Microsoft Visual Studio Offline Packages には、この ID のパッケージが存在しません。
エラー   NU1101  パッケージ Xamarin.Essentials が見つかりません。ソース Microsoft Visual Studio Offline Packages には、この ID のパッケージが存在しません。
エラー   NU1101  パッケージ Xamarin.Forms が見つかりません。ソース Microsoft Visual Studio Offline Packages には、この ID のパッケージが存在しません。
エラー   NU1102  バージョン (>= 2.0.3) のパッケージ NETStandard.Library が見つかりません

解決方法

困り果てて色々検索していたところ、以下の記事を発見。

一応こちらでも手順を残しておきます。

手順

  • ツール > NuGet パッケージ マネージャー > パッケージ マネージャー設定 から 「NuGet パッケージマネージャ」 を開く
  • 「+」 をクリック > 以下を追加して「更新」をクリック

名前(N): nuget.org
ソース(S): https://api.nuget.org/v3/index.json

型または名前空間の名前 が名前空間 に存在しません (アセンブリ参照があることを確認してください)。

  • パッケージソース > 「すべてのNuGetキャッシュをクリア」をクリック

型または名前空間の名前 が名前空間 に存在しません (アセンブリ参照があることを確認してください)。

  • Visual Studio を再起動

著者の環境では上記手順でエラーが解消されました。

以上ご拝読有難うございました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information

What you can do with signing up