32

我正在尝试System.DirectoryServices在网站项目中使用,但出现此错误:

命名空间“System”中不存在类型或命名空间名称“DirectoryServices”(您是否缺少程序集引用?)

我的项目引用了System.DirectoryServicesin web.config

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

我确实有using System.DirectoryServices我想使用它的文件。

有人知道在哪里寻找问题吗?

4

9 回答 9

110
  1. 右键单击解决方案下的引用。
  2. 选择添加参考。该参考可以在框架程序集列表下找到。选择System.DirectoryServices并单击添加。
于 2013-01-03T22:40:50.160 回答
8

在黑暗中射击:您是否尝试过添加到 web.config:

<compilation debug="true">
     <assemblies>
          <add assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
     </assemblies>
</compilation>
于 2008-11-05T13:28:16.097 回答
8

我认为您应该安装目录服务包。

Install-Package System.DirectoryServices -Version 4.0.0 

目录服务包

于 2017-09-12T15:21:34.570 回答
7

网络服务器(IIS 或其他)是否配置为将文件夹作为应用程序运行(即显示为 cog),是否使用正确版本的 ASP.NET?如果它作为 1.1 运行,它的某些部分可能会工作 - 但它无法在 1.1 GAC 中找到该 2.0 程序集。

于 2008-11-05T13:46:14.737 回答
7

这是一个非常古老的线程,但只是为了后代提供一个完整的答案;)

如果项目缺少对 .Net 组件System.DirectoryServices的引用,则会出现此问题

以您喜欢的常用方式添加此引用将解决该问题。

于 2012-02-08T16:12:03.167 回答
1

这是一个网站项目,还是一个 Web应用程序项目。对于后者,引用是通过 .csproj 处理的——即通过解决方案资源管理器中的“引用”节点。

于 2008-11-05T13:19:11.233 回答
1

在解决方案资源管理器中右键单击您的项目,然后从结果菜单中单击添加引用,然后在 .NET 选项卡下导航到 DirectoryServices.AccountManagement

于 2013-06-16T01:41:04.157 回答
1

当您使用较旧的 .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>
于 2019-03-05T10:10:23.597 回答
0

当我尝试将网站转换为网络应用程序时,我遇到了同样的问题。看起来 vs 未能加载程序集应该与版本控制有关。如下所示切换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。更改为上述 ex 上的 GAC 目录相关框架C:\Windows\Microsoft.NET\Framework\v4.0.30319 并调用

sn -T System.DirectoryServices.dll
于 2017-02-08T07:49:38.500 回答