web-dev-qa-db-ja.com

Log4netリファレンスアセンブリの依存関係の問題

私はJava開発者であり、いくつかのプロジェクトを開発するためにC#の学習を始めたばかりです。私が仕事に慣れている多くのJavaフレームワークを見てうれしいです。 with(log4j、ant、hibernateなど)には、.netバージョン(log4net、nant、nhibernate)があります。

プロジェクトを作成し、その中にlog4netアセンブリ参照を配置しようとしましたが、次の警告が表示されます(log4net名前空間とクラスの認識に失敗したことを通知する4つのエラーが続きます)。

参照されているアセンブリ「log4net」は、現在ターゲットになっているフレームワーク「.NETFramework、Version = v4」にない「System.Web、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a」に依存しているため、解決できませんでした。 .0、Profile = Client "。ターゲットフレームワークにないアセンブリへの参照を削除するか、プロジェクトの再ターゲットを検討してください。

System.Web.ApplicationServicesSystem.Web.Servicesへの参照を追加しましたが、機能していません。この依存関係の問題を解決するための助けをいただければ幸いです。

ありがとう

19
craftsman

[〜#〜]更新[〜#〜]

それでもこのエラーが発生する場合は、古いバージョンのlog4netを使用しているため、完全な.NET 4.0フレームワークを必要としない 現在のバージョン への更新を検討する必要があります。コメントでこれを指摘してくれた @ Philippe に感謝します。


プロジェクトは、System.Webを含まない.NET 4.0クライアントプロファイルを参照しています。実際には、fullフレームワークを参照する必要があります。

手順については、MSDNの 方法:特定の.NET Frameworkバージョンまたはプロファイルをターゲットにする を参照してください。

  1. Visual Studioで、変更するプロジェクトを開きます。
  2. ソリューションエクスプローラーでプロジェクトを右クリックし、[プロパティ]をクリックします。
  3. プロジェクトデザイナで、次のようにターゲットフレームワークリストを見つけます。

    • Visual Basicプロジェクトの場合は、[コンパイル]タブをクリックし、[高度なコンパイルオプション]をクリックします。 [ターゲットフレームワーク]リストは、[コンパイラの詳細設定]ダイアログボックスにあります。
    • Visual C#プロジェクトの場合、[ターゲットフレームワーク]リストはプロジェクトデザイナの[アプリケーション]タブにあります。詳細については、アプリケーションページ、プロジェクトデザイナ(C#)を参照してください。
    • Visual F#プロジェクトの場合、[ターゲットフレームワーク]リストはプロジェクトデザイナの[アプリケーション]タブにあります。
  4. [ターゲットフレームワーク]リストで、必要な.NETFrameworkのバージョンまたはプロファイルを選択します。 [OK]をクリックすると、プロジェクトがアンロードされてから、統合開発環境(IDE)に再ロードされます。プロジェクトは、選択した.NETFrameworkのバージョンを対象としています。

おそらくまた興味深いのは 。NET Frameworkターゲティングエラーのトラブルシューティング です。

28
Mark Rushakoff

プロジェクトのプロパティダイアログで、「。Net 4.0 Frameworkクライアントプロファイル」ではなく、「。Net4.0Framework」をターゲットにするようにプロジェクトを設定します。

6
Lloyd

バージョン1.2.11でこのエラーが発生し、プロジェクトのフレームワークを変更したくない場合は、クライアントプロファイルのバージョンをインストールするだけです。これは、バイナリディストリビューションのnet-cpフォルダにあります。

1
101100

ほんの小さなアップデート。この問題はほぼ3年前に記録され、今月修正されました。したがって、log4netの次のバージョン(1.2.10以降)は、クライアントプロファイルフレームワークで動作するのに問題がないはずです。

https://issues.Apache.org/jira/browse/LOG4NET-174

1
Maciej

将来のユーザーのためのリファレンスとして:

フレームワークも[〜#〜]インストール[〜#〜]することを忘れないでください目標! (私自身、すべてのフォルダー(v4.0x、v2.0Xなど)が存在するため、すべてのフレームワークがあると思いました。NOT!.NET 4.0しか持っていなかったことがわかりました。 )クライアントプロファイルがシステムにインストールされていて、適切なフレームワークがターゲットになっているにもかかわらず、System.Webが見つかりませんでした。

とにかく、ここから必要な.netフレームワークをダウンロードしてください: 。NET Frameworks Microsoft Downloads

0
e-motiv