WebサイトプロジェクトでSystem.DirectoryServices
を使用しようとしていますが、このエラーが表示されます。
タイプまたはネームスペース名「DirectoryServices」がネームスペース「System」に存在しません(アセンブリ参照がありませんか?)
私のプロジェクトには、System.DirectoryServices
内のweb.config
への参照があります。
<add Assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
そして、使用したいファイルにusing System.DirectoryServices
があります。
誰が問題を探すべき手がかりを持っていますか?
Webサーバー(IISなど)は、フォルダーをアプリケーションとして実行する(つまり、歯車として表示する)ように構成されており、ASP.NETの正しいバージョンを使用していますか? 1.1として実行されている場合、その一部は機能する可能性がありますが、1.1 GACで2.0アセンブリを見つけることができません。
暗闇で撮影:web.configに追加してみましたか?
<compilation debug="true">
<assemblies>
<add Assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
</assemblies>
</compilation>
これは非常に古いスレッドですが、後世のために完全な答えを提供するだけです;)
この問題は、プロジェクトに.Netコンポーネントへの参照がない場合に発生しますSystem.DirectoryServices
この参照を通常の方法で追加すると、問題が解決します。
ディレクトリサービスパッケージをインストールする必要があると思います。
Install-Package System.DirectoryServices -Version 4.0.0
これはweb siteプロジェクト、またはweb applicationプロジェクトです。後者では、参照は.csprojを介して、つまりソリューションエクスプローラーの「参照」ノードを介して処理されます。
ソリューションエクスプローラーでプロジェクトを右クリックし、表示されるメニューから[参照の追加]をクリックし、[。NET]タブの下でDirectoryServices.AccountManagementに移動します。
WebサイトをWebアプリに変換しようとしたときに、同じ問題が発生しました。アセンブリのロードに失敗した場合とバージョン管理に関連している場合があります。 web.config
に切り替えて、以下のようにアセンブリを追加します。 DLLバージョンがアプリケーションのターゲットの.NETバージョンと一致していることを確認してください。
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add Assembly="System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</assemblies>
</compilation>
</system.web>
</configuration>
公開鍵を取得するには、Developer Command Prompt for VS
を起動する必要があります。上記のC:\Windows\Microsoft.NET\Framework\v4.0.30319
のGACディレクトリ関連フレームワークに変更して、呼び出します
sn -T System.DirectoryServices.dll
これらの問題は、古い.netバージョンを使用していて、最新のIDEでビルドしようとすると発生します
使用しているIDEのバージョンと、現在のコードバージョンによって異なります。
ウェブ設定を確認し、
私の場合、最新バージョン、つまり4.7を使用していました。directoryService
アセンブリはまだC#4.0を参照しています。
IDの最新バージョン、つまり4.7を使用している場合は以下を追加します
<system.web>
<location>
<compilation debug="false" numRecompilesBeforeAppRestart="100" targetFramework="4.7">
<assemblies>
<add Assembly="System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
<add Assembly="System.DirectoryServices.AccountManagement, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
</assemblies>
</compilation>
</system.web>
</location>