web-dev-qa-db-ja.com

System.DirectoryServicesは名前空間「System」で認識されません

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があります。

誰が問題を探すべき手がかりを持っていますか?

29
jansokoly

Webサーバー(IISなど)は、フォルダーをアプリケーションとして実行する(つまり、歯車として表示する)ように構成されており、ASP.NETの正しいバージョンを使用していますか? 1.1として実行されている場合、その一部は機能する可能性がありますが、1.1 GACで2.0アセンブリを見つけることができません。

6
Marc Gravell
  1. ソリューションの下の[参照]を右クリックします。
  2. [参照の追加]を選択します。参照は、フレームワークアセンブリリストにあります。 System.DirectoryServicesを選択し、[追加]をクリックします。
104
user1947015

暗闇で撮影:web.configに追加してみましたか?

<compilation debug="true">
     <assemblies>
          <add Assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
     </assemblies>
</compilation>
8
Mitch Wheat

これは非常に古いスレッドですが、後世のために完全な答えを提供するだけです;)

この問題は、プロジェクトに.Netコンポーネントへの参照がない場合に発生しますSystem.DirectoryServices

この参照を通常の方法で追加すると、問題が解決します。

7
Salman Siddiqui

ディレクトリサービスパッケージをインストールする必要があると思います。

Install-Package System.DirectoryServices -Version 4.0.0 

ディレクトリサービスパッケージ

3
BasmaSH

これはweb siteプロジェクト、またはweb applicationプロジェクトです。後者では、参照は.csprojを介して、つまりソリューションエクスプローラーの「参照」ノードを介して処理されます。

1
Marc Gravell

ソリューションエクスプローラーでプロジェクトを右クリックし、表示されるメニューから[参照の追加]をクリックし、[。NET]タブの下でDirectoryServices.AccountManagementに移動します。

1
user2148239

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
0

これらの問題は、古い.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>
0
Pratheek S