System.DirectoryServices не распознается в пространстве имен System

Я пытаюсь использовать System.DirectoryServices в проекте веб-сайта и получаю следующую ошибку:

The type or namespace name 'DirectoryServices' does not exist in the namespace 'System' (are you missing an assembly reference?)

В моем проекте есть ссылка на System.DirectoryServices в web.config:

<add assembly = "System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>  

И у меня есть using System.DirectoryServices в файлах, где я хочу его использовать.

Кто-нибудь знает, где искать проблему?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
31
0
78 440
9
Перейти к ответу Данный вопрос помечен как решенный

Ответы 9

Это веб-проект сайт или веб-проект заявление. В последнем случае ссылки обрабатываются через .csproj, то есть через узел «Ссылки» в обозревателе решений.

Снято в темноте: пробовали ли вы добавить в web.config:

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

как насчет любых сборок, от которых зависит System.DirectoryServices?

Mitch Wheat 05.11.2008 16:42

PublicKeyToken, возможно, должен быть в нижнем регистре, я думаю, он может быть чувствительным к регистру - у меня не было этой строки, и я просто добавил ее, скопировав / вставив PublicKeyToken из свойств моей DLL в C: \ Windows \ Assembly (также известный как GAC), и вот что для меня решило.

vapcguy 07.11.2014 02:24

Даже после добавления необходимых ссылок, когда я создаю решение, оно было успешно построено, и когда я запустил проект, я получил ошибку как CS0234: Тип или имя пространства имен «DirectoryServices» не существует в пространстве имен «Система» (отсутствует ссылка на сборку?) Я не понял, почему я снова получил ошибку после успешной сборки

hud 16.03.2017 10:03
Ответ принят как подходящий

Настроен ли веб-сервер (IIS или что-то еще) для запуска папки как приложения (т.е. отображается как винтик), и использует ли он правильную версию ASP.NET? Если он работает как 1.1, некоторые его части могут работать, но он не сможет найти эту сборку 2.0 в 1.1 GAC.

Это очень старая ветка, но просто чтобы дать полный ответ для потомков;)

Эта проблема возникает, если в проекте отсутствует ссылка на компонент .Net System.DirectoryServices.

Добавление этой ссылки обычным способом, который вы предпочитаете, решит проблему.

Это был проект веб-сайта, и у меня была сборка, указанная в web.config, как вы можете видеть в вопросе.

jansokoly 09.02.2012 21:34

Я столкнулся с той же проблемой, и у меня она тоже есть в ссылках.

vapcguy 07.11.2014 02:12
  1. Щелкните правой кнопкой мыши ссылку "Ссылки" под вашим решением.
  2. Выберите Добавить ссылку. Ссылку можно найти в списке сборок Framework. Выберите System.DirectoryServices и нажмите Добавить.

У меня он есть в справочниках, и он по-прежнему дает мне ту же ошибку, что и выше.

vapcguy 07.11.2014 02:12

@vapcguy Старый комментарий, но вам, вероятно, также нужно добавить ссылку System.DirectoryServices.AccountManagement.

TylerH 01.02.2018 23:55

почему я не могу найти System.DirectoryServices в диспетчере ссылок?

Lion Hunter 23.09.2020 19:24

В обозревателе решений щелкните проект правой кнопкой мыши, затем в появившемся меню выберите Добавить ссылку, затем на вкладке .NET перейдите к DirectoryServices.AccountManagement.

У меня была такая же проблема, когда я пытался преобразовать веб-сайт в веб-приложение. Похоже, что неудача при загрузке сборки должна быть связана с управлением версиями. переключитесь на 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. Переход к структуре, связанной с каталогом GAC, приведенной выше ex C:\Windows\Microsoft.NET\Framework\v4.0.30319 и позвони

sn -T System.DirectoryServices.dll

Я думаю, вам следует установить пакет служб каталогов.

Install-Package System.DirectoryServices -Version 4.0.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>

Другие вопросы по теме