510

にいくつかのプロジェクトがあるC#ソリューションがありVisual Studio 2010ます。1つはテストプロジェクト(「PrjTest」と呼びます)、もう1つはプロジェクト(「 PrjFormWindows Forms Application 」と呼びます)です。PrjFormによって参照される3番目のプロジェクトもあり、これを参照して正常に使用できます。

PrjFormはPrjTestを参照し、PrjFormusingには次のステートメントを持つクラスがあります。

using PrjTest;
  1. 参照が正しく追加されました
  2. usingステートメントは正しく配置されています
  3. スペルは正しい
  4. PrjTestは正常にビルドされます
  5. PrjFormはほぼビルドされますがusing PrjTest;、次のエラーで中断します。

タイプまたは名前空間の名前'PrjTest'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)

私はこれを解決するために次のことを試みました:

  1. Resharperを削除しました(Resharperは参照されたプロジェクトを問題なく認識したため、試してみる価値があると思いました)
  2. 参照とusingステートメントを削除して再度追加しました
  3. PrjFormを最初から再作成
  4. PrjFormは現在PrjTestフォルダー内にあります。外部フォルダーに移動してみました
  5. の新しいコピーを使用して、ソリューションを別のコンピューターにロードしましたVS 2010

私は宿題をして、オンラインで答えを探すのに非常に長い時間を費やしましたが、どの解決策もまだ役に立ちませんでした。

他に何を試すことができますか?

4

16 に答える 16

730

この質問を参照してください。

これは、クライアントのプロファイリングの問題であることがわかりました。

PrjForm が「.Net Framework 4 Client Profile」に設定されていたのを「.Net Framework 4」に変更したところ、正常にビルドできました。

みんな、ありがとう!オンラインでの検索に時間を費やした後、投稿してから数分後に解決策を見つけたのではないかと思います。その秘訣は、尋ねる正しい質問を知っていることだと思います..

于 2011-01-21T23:52:29.783 に答える
66

私の場合、私は次のことをしました。

参照DLL:.NET 4.5

計画 :.NET 4.0

上記の不一致のため、4.0プロジェクトは4.5.DLLの名前空間内を見ることができませんでした。.DLLを再コンパイルして.NET4.0をターゲットにしましたが、問題ありませんでした。

于 2012-11-28T04:01:54.750 に答える
41

PrjForm が「.Net Framework 4 Client Profile」に設定されていたのを「.Net Framework 4」に変更したところ、正常にビルドできました。

これは私にとってもうまくいきました。どうもありがとう。dotnetrdf からキットをダウンロードした dotNet の RDF の例を試していました。

NET4 クライアント プロファイル: すべてのクライアント デスクトップ アプリケーション (Windows フォームおよび WPF アプリを含む) に対して常に NET4 クライアント プロファイルをターゲットにします。

NET4 フル フレームワーク:アプリが必要とする機能またはアセンブリがクライアント プロファイルに含まれていない場合にのみ、NET4 フルをターゲットにします。これには以下が含まれます: 次のようなサーバー アプリを構築している場合:

  • ASP.Net アプリ
  • サーバー側 ASMX ベースの Web サービス

次のようなレガシー クライアント シナリオを使用する場合: o NET4 で廃止され、クライアント プロファイルに含まれていない System.Data.OracleClient.dll を使用します。

  • 従来の Windows Workflow Foundation 3.0 または 3.5 (WF3.0、WF3.5) を使用する

開発者シナリオを対象としており、MSBuild などのツールが必要な場合、または System.Design.dll などのデザイン アセンブリへのアクセスが必要な場合

于 2011-05-22T19:57:37.153 に答える
30

他のプロジェクトは.NET 4.5でコーディングされ、他のプロジェクトは4.0でコーディングされていたため、私は解決しました

于 2012-12-09T13:41:07.243 に答える
8

using ステートメントは、プロジェクトではなく名前空間を参照します。

参照プロジェクトに適切な名前の名前空間があることを確認してください。

namespace PrjTest
{
     public class Foo
     {
          // etc...
     }
}

MSDN で名前空間の詳細を参照してください。

于 2011-01-21T23:40:44.387 に答える
6

私はこの問題に遭遇しました。

プロジェクト B はプロジェクト A を参照します。

A.dll としてコンパイルされたプロジェクト A (アセンブリ名 = A)。

A.dll (アセンブリ名 A) としてコンパイルされたプロジェクト B。

Visual Studio 2010 はこれをキャッチできませんでした。Resharper は問題ありませんでしたが、コンパイルできませんでした。WinForms デザイナーは、互換性のないプラットフォーム ターゲットが原因である可能性が高いという誤解を招くエラー メッセージを表示しました。

辛い一日を過ごした後の解決策は、アセンブリが同じ名前を持っていないことを確認することでした。

于 2013-06-03T07:05:00.407 に答える
5

また、参照されているプロジェクトが .NET 4.0 を対象としている一方で、コンソール アプリ プロジェクトが .NET 4.0 クライアント ライブラリを対象としている可能性もあります。

この特定のケースとは関係がないかもしれませんが、他の誰かがこの情報を役に立つと思うかもしれません.

于 2012-01-31T23:48:27.747 に答える
3

同じ問題がありました。ターゲット フレームワークは私にとっては問題ありませんでした。それでもうまくいきませんでした。VS2010 sp1 をインストールし、PrjTest で「リビルド」を行いました。それからそれは私のために働き始めました。

于 2012-07-30T12:40:10.370 に答える
2

COM / ActiveX参照の場合、VS2012はステートメントを使用するとこのエラーを表示します。それはあなたがusingステートメントを見逃しているかもしれないと言っているので、これは非常に面白いです。

これを解決するには:隣接プロジェクトにある場合でも実際のCOM / ActiveX dllを登録し、プロジェクトチャネルではなくCOMチャネルを介して参照を追加します。ProjectNameの代わりにInterop.ProjectNameを参照として追加し、これによりこの奇妙なバグが解決されます。

于 2012-10-21T17:30:25.227 に答える
2

フレームワークを次のように変更します

.NET Framework 4 クライアント プロファイル

私のために仕事をしました。

于 2012-10-01T03:17:49.960 に答える
2

このような動作を引き起こしている可能性のあるその他の問題は、ビルド構成です。

特定のフォルダーにビルドするように構成が設定された 2 つのプロジェクトがありました。DebugandのようAny CPUに、2 番目はDebugandx86でした。

私がしたこと 私はSolution->Context menu->Properties->Configuration properties->Configurationすべてのプロジェクトを同じ構成を使用するように設定Debugし、チェックマークx86もチェックしました。Build

その後、プロジェクトが正しくビルドされ始め、名前空間を確認できるようになりました。

于 2013-10-23T14:25:20.353 に答える
1

プロジェクトのプロパティを確認してください。参照パスは次のように空になっている必要があります。

プロジェクトのプロパティ

よろしく

于 2012-12-03T22:34:34.350 に答える
1

PrjTestプロジェクト (PrjTest) が名前空間内でパブリック型を公開していない場合、そのエラーが発生します。

プロジェクト (PrjTest) には、"PrjTest" 名前空間に公開されているクラスまたは型が含まれていますか?

于 2011-01-22T00:48:51.510 に答える
1

アプリケーションのターゲット フレームワークを「.Net Framework 4」に変更しました。

エラーが消えました。

幸運を; :D

于 2012-05-04T10:28:37.470 に答える