1

Visual Studio 2012 に (C#) .NET 4 Client Profile プロジェクトのソリューションがあります。今日、.NET 4 Client Profile を対象とする別のプロジェクトを追加しようとしました。私の新しいプロジェクトは、私のソリューションで他の多くのクラス ライブラリを参照する必要がありますが、次のエラーでそれぞれのクラス ライブラリを参照できません。

現在対象となっているフレームワーク ".NETFramework,Version=v4.0,Profile=Client" には、参照されているアセンブリ "log4net" が依存する "System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" が含まれていません。これにより、参照されたアセンブリが解決されませんでした。これを修正するには、(1) このプロジェクトのターゲット フレームワークを変更するか、(2) 参照されているアセンブリをプロジェクトから削除します。

私が参照しているプロジェクトはどれも に依存しておらず、System.Web.NET 4 Client Profile を対象としています。実際、上に貼り付けたエラーは、log4net確かに に依存しないものSystem.Webです。

ソリューション全体を何度もクリーンアップして再構築し、Visual Studio を再起動しましたが、何の効果もありません。プロジェクトをビルドする方法についてのアイデアはありますか?

おそらく役に立たない情報を 1 つだけ紹介します。クラス ライブラリ プロジェクトを作成したとき、自動的に .NET 4.5 を対象としていたのですが、後でそれを .NET 4 クライアント プロファイルに変更しました。

4

3 に答える 3

1

log4netSystem.Web に依存しています。その名前空間を使用していない可能性がありますが、そのライブラリにはそれが必要です。自分でプロジェクトをビルドするつもりなら、それを削除する方法について話す別の質問があります。別の質問に記載されているように、アプリケーション ターゲットを変更することもできます。

于 2012-11-26T22:35:00.413 に答える
0

問題が見つかりました。

プロジェクトがまだ .NET 4.5 を対象としているときに、NuGet を使用して log4net をインストールしました。これにより、packages.config ファイルが書き込まれました。

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="log4net" version="2.0.0" targetFramework="net45" />
</packages>

ターゲット フレームワークのバージョンを変更した後、NuGet からすべてのパッケージをアンインストールして再インストールすると、packages.config が削除され、次のように書き換えられました。

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="log4net" version="2.0.0" targetFramework="net40-Client" />
</packages>

そして今、それは機能します。

于 2012-11-26T22:45:53.567 に答える