15

最近、BlogEngine.Netインストールを1.6および.Net 4.0にアップグレードしましたが、アップグレードを実行したときにBlogEngine.Coreをビルドしませんでした。ただし、BlogEngine.Coreプロジェクトを今すぐビルドしようとすると、(System.Web.Security。)MembershipProviderのシンボルを読み込めないため、コンパイルが失敗します。これは、BlogEngineの問題ではなく、.Net / C#/userの問題であると思います。

プロジェクトにはライブラリSystem.Webへの参照があり、クラスファイル(MembershipProviderから継承)にはUsingforSystem.Web.Securityが含まれています。ReSharperを有効にすると、IntelliSenseは、同じ名前の2つのライブラリ(System.Web.Security)を選択して、どのメンバーシッププロバイダーを使用するかについて混乱を示します。

このあいまいな参照の原因は何でしょうか。参照されている2つのライブラリを確認するにはどうすればよいですか?参照が重複していることを示す明らかなものはありません。繰り返しになりますが、一度見れば明らかなことは本当に明白です。

4

2 に答える 2

37

問題が解決しました。System.Web.Security名前空間はSystem.Webのメンバーですが、System.Web.ApplicationServicesのメンバーでもあります。プロジェクトにはSystem.Webへの参照があり、usingステートメントはSystem.Web.Securityを参照しているため、IntelliSenseはクラスを指定するときにフラグをスローしませんでした。ただし、プロジェクトにはSystem.Web.ApplicationServicesへの参照がありませんでした。プロジェクトにはクラスへの参照がありましたが、含まれているアセンブリ(... ApplicationServices)が見つからなかったため、クラスをロードできませんでした。

于 2010-09-15T00:35:00.353 に答える
3

Webアプリケーションのカスタムメンバーシッププロバイダーを作成するときに、これと同じ問題に対処しました。System.Webへの参照を削除し、次の参照を追加する必要があります。-System.Web.ApplicationServices-System.Configuration

于 2012-03-28T05:43:36.017 に答える