5

私の C# ソリューションには 5 つのプロジェクトがあります。

  1. 一般
  2. データアクセス。
  3. UI
  4. コンポーネント
  5. テスト

Components.dll への参照を追加できます。しかし、ソリューションを実行すると、次のエラーが発生しました。

タイプまたはネームスペース名 'Components' は存在しません。

Components.dllすでに参照フォルダーに存在します。

助けてくれませんか?

ビルド出力は次のとおりです。

------ Rebuild All started: Project: Comps, Configuration: Release Any CPU ------
  Comps -> ..\Ashyaneh\Comps\bin\Release\AshyanehComps.dll
------ Rebuild All started: Project: Interfaces, Configuration: Debug Any CPU ------
  Interfaces -> ..\Ashyaneh\Interfaces\bin\Debug\AshyanehInterfaces.dll
------ Rebuild All started: Project: Common, Configuration: Debug Any CPU ------
  Common -> ..\Ashyaneh\Common\bin\Debug\AshyanehCommon.dll
------ Rebuild All started: Project: Web, Configuration: Debug Any CPU ------
  Web -> E:\My Programming 1391\HRShojaieWebAppRC2\Ashyaneh\Web\bin\Web.dll
------ Rebuild All started: Project: Test, Configuration: Debug x86 ------
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360,9):
warning MSB3253: The referenced assembly "AshyanehComps.dll" could not be resolved
because it has a dependency on "System.Web, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" which is not in the currently targeted framework
".NETFramework,Version=v4.0,Profile=Client". Please remove references to assemblies
not in the targeted framework or consider retargeting your project.
  Test -> ..\Ashyaneh\Test\bin\Debug\Test.exe
========== Rebuild All: 5 succeeded, 0 failed, 0 skipped ==========
4

7 に答える 7

16

これがあなたの問題です:

参照されているアセンブリ「E:\My Programming 1391\HRShojaieWebAppRC2\Ashyaneh\Comps\bin\Release\AshyanehComps.dll」は、「System.Web、Version=4.0.0.0、Culture=neutral、 PublicKeyToken=b03f5f7f11d50a3a" は、現在対象のフレームワーク ".NETFramework,Version=v4.0,Profile=Client" にありません

.NET 4.0 を実行しようとしていると仮定すると、「軽量」のクライアント プロファイル、基本クラス ライブラリに対してコンパイルします。System.Web 用の完全なフレームワーク クラス ライブラリを含める必要があります。

解決

この変更を行うには、AshyanehComps.dll のプロジェクトを右クリックし、[プロパティ] をクリックし、[アプリケーション] タブをクリックし、[ターゲット フレームワーク] を [.NET Framework 4] に変更します。

安全のために、ソリューション内のすべてのプロジェクトに対して上記の手順に従います。問題はありません。

于 2012-06-29T17:35:51.080 に答える
1

エラーのあるプロジェクトを右クリックし、[参照の追加] をクリックしてプロジェクト参照を選択することにより、コンポーネントが必要なすべての場所に参照として追加されていますか?

上記が完了したら、次のプロセスに従います。

  • すべて保存
  • Visual Studio を閉じる
  • 各プロジェクトの BIN および OBJ フォルダーを削除します。
  • VS を再起動する
  • 再試行

それでもうまくいかない場合は、ビルド順序を調整する必要があります。ソリューションを右クリックし、各プロジェクトが正しい依存関係の順序でビルドされていることを確認し、循環依存関係がないことを確認します。

于 2012-06-29T14:24:29.953 に答える
0
  • 「コンポーネント」プロジェクトを参照として他のプロジェクトに追加する場合、「参照の追加」画面で、「コンポーネント」プロジェクトの出力パス (Components.dll) の [参照] タブではなく、[プロジェクト] タブに参照を追加します。

  • 次に、ソリューションをクリアして、「コンポーネント」プロジェクトをビルドします。

  • 「Components」プロジェクトにエラーがある場合は、それらを解決してください。

  • 最後に、ソリューションをビルドします。

于 2012-06-29T14:44:04.933 に答える
0

csproj には参照が含まれているため、ソリューションをコミットするときに csproj を保存することを確認してください。

于 2012-06-29T14:21:24.450 に答える
0

メイン アプリケーションのターゲット フレームワークが .Net Framework 4.0 Client Profile に設定されていないことを確認します。これに設定されている場合は、変更して .Net Framework 4.0 に設定します。

http://msdn.microsoft.com/en-us/library/bb398202.aspxを変更する方法を見ることができます

于 2012-06-29T14:37:51.677 に答える
0

まず、5 つのプロジェクトがあります。どの「コンポーネント」がどの特定のプロジェクトに存在しないと報告されているかを判断する必要がありますか?

次に、プロジェクト参照に移動して、それをプロジェクトに追加します (VS refrence キャッシュを生成するためにそこにある場合は再度追加します)。「ローカルにコピー」オプションが必要かどうかを確認するか、グローバル アセンブリ パスを確認してください。

これですべての参照が完了しました。問題が引き続き発生する場合は、プロジェクト コード (特定の行) をチェックして、機能しない理由を確認してください。MS ビルドの出力を投稿すると、それがわかります。

于 2012-06-29T14:37:58.587 に答える
0

ほとんどの場合、アプリケーション ターゲット フレームワークは、私のように 4.0 Client Profile です。4.0 に固有のものを使用していない限り、解決策は 3.5 に落とすことで、エラーはなくなります。マイクロソフトに感謝します。

于 2015-03-13T19:48:27.270 に答える