Я пытаюсь использовать 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 в файлах, где я хочу его использовать.
Кто-нибудь знает, где искать проблему?





Это веб-проект сайт или веб-проект заявление. В последнем случае ссылки обрабатываются через .csproj, то есть через узел «Ссылки» в обозревателе решений.
Снято в темноте: пробовали ли вы добавить в web.config:
<compilation debug = "true">
<assemblies>
<add assembly = "System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
</assemblies>
</compilation>
PublicKeyToken, возможно, должен быть в нижнем регистре, я думаю, он может быть чувствительным к регистру - у меня не было этой строки, и я просто добавил ее, скопировав / вставив PublicKeyToken из свойств моей DLL в C: \ Windows \ Assembly (также известный как GAC), и вот что для меня решило.
Даже после добавления необходимых ссылок, когда я создаю решение, оно было успешно построено, и когда я запустил проект, я получил ошибку как CS0234: Тип или имя пространства имен «DirectoryServices» не существует в пространстве имен «Система» (отсутствует ссылка на сборку?) Я не понял, почему я снова получил ошибку после успешной сборки
Настроен ли веб-сервер (IIS или что-то еще) для запуска папки как приложения (т.е. отображается как винтик), и использует ли он правильную версию ASP.NET? Если он работает как 1.1, некоторые его части могут работать, но он не сможет найти эту сборку 2.0 в 1.1 GAC.
Это очень старая ветка, но просто чтобы дать полный ответ для потомков;)
Эта проблема возникает, если в проекте отсутствует ссылка на компонент .Net System.DirectoryServices.
Добавление этой ссылки обычным способом, который вы предпочитаете, решит проблему.
Это был проект веб-сайта, и у меня была сборка, указанная в web.config, как вы можете видеть в вопросе.
Я столкнулся с той же проблемой, и у меня она тоже есть в ссылках.
У меня он есть в справочниках, и он по-прежнему дает мне ту же ошибку, что и выше.
@vapcguy Старый комментарий, но вам, вероятно, также нужно добавить ссылку System.DirectoryServices.AccountManagement.
почему я не могу найти System.DirectoryServices в диспетчере ссылок?
В обозревателе решений щелкните проект правой кнопкой мыши, затем в появившемся меню выберите Добавить ссылку, затем на вкладке .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>
как насчет любых сборок, от которых зависит System.DirectoryServices?