'DirectoryServices' 不存在于命名空间 'System' 中
'DirectoryServices' does not exist in the namespace 'System'
我正在尝试在 ASP.Net MVC (C#) 项目中使用 DirectoryEntry 并收到以下错误:
The type or namespace 'DirectoryServices
' does not exist in the namespace 'System
'.
我已将以下引用添加到我的项目中:
System
System.DirectoryServices
System.DirectoryServices 正在加载:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.DirectoryServices.dll
项目目标框架:.Net Framework 4.5.2
这似乎通常是一个简单的参考问题,但如上所述,参考应该在那里。有什么建议吗?
看起来您正在尝试从 System
命名空间加载 DirectoryEntry
,就像您在代码中编写的一样:
System.DirectoryEntry entry = ...
而不是:
System.DirectoryServices.DirectoryEntry e = ...;
或者简单地说:
DirectoryEntry e = ...;
看来你在尝试
System.DirectoryEntry directoryEntry = ...
而是简单地使用
using System.DirectoryServices;
并尝试
DirectoryEntry directoryEntry = ...
或者你也可以试试
System.DirectoryServices.DirectoryEntry directoryEntry = ...
更新:
您正试图在 cshtml
页面中使用 DirectoryEntry
。因此,您需要在项目的 Views 文件夹下的 web.config
文件中添加 System.DirectoryServices
的引用(它不是项目根目录中的主要 web.config
文件)
<system.web.webPages.razor>
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.DirectoryServices" />
....
<!-- etc -->
</namespaces>
</pages>
</system.web.webPages.razor>
阅读其他一些帖子后,我尝试将我的项目目标框架从“.Net Framework 4.5.2”切换到“.NET Framework 4.5”并解决了问题!似乎 System.DirectoryServices 已在 .Net Framework 4.5.2 中删除,这看起来很奇怪。也许它已被其他东西取代?
编辑:更改目标框架解决了问题,但在另一个 WS 上,我还能够在我的 'System.DirectoryServices' 参考中将 'Copy Local' 设置为 "True",这解决了问题。所以也许是那个 dll 不在 GAC 中的问题?无论如何,希望这些解决方案之一可以帮助 运行 遇到相同问题的人。
在你的Viewsweb.config中,除了添加命名空间外,你还必须显式添加程序集。仅仅添加到您的项目引用中似乎还不够。这是适合我的观点 web.config:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation>
<assemblies>
<add assembly="System.DirectoryServices.AccountManagement, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</assemblies>
</compilation>
</system.web>
<system.web.webPages.razor>
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.DirectoryServices.AccountManagement" />
</namespaces>
</pages>
</system.web.webPages.razor>
</configuration>
实际上,正确的方法是添加对 DirectoryServices 的引用。它与 .NET Framework 版本无关。
在解决方案资源管理器中右键单击您的项目,然后 select 添加 -> 引用,然后 select System.DirectoryServices。
它发生在 .cs
在 App_code
之下
使用<add assembly="System.DirectoryServices.AccountManagement
可能会解决
在 .Net 5 安装以下 nuget 包
System.DirectoryServices
我正在尝试在 ASP.Net MVC (C#) 项目中使用 DirectoryEntry 并收到以下错误:
The type or namespace '
DirectoryServices
' does not exist in the namespace 'System
'.
我已将以下引用添加到我的项目中:
System
System.DirectoryServices
System.DirectoryServices 正在加载:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.DirectoryServices.dll
项目目标框架:.Net Framework 4.5.2
这似乎通常是一个简单的参考问题,但如上所述,参考应该在那里。有什么建议吗?
看起来您正在尝试从 System
命名空间加载 DirectoryEntry
,就像您在代码中编写的一样:
System.DirectoryEntry entry = ...
而不是:
System.DirectoryServices.DirectoryEntry e = ...;
或者简单地说:
DirectoryEntry e = ...;
看来你在尝试
System.DirectoryEntry directoryEntry = ...
而是简单地使用
using System.DirectoryServices;
并尝试
DirectoryEntry directoryEntry = ...
或者你也可以试试
System.DirectoryServices.DirectoryEntry directoryEntry = ...
更新:
您正试图在 cshtml
页面中使用 DirectoryEntry
。因此,您需要在项目的 Views 文件夹下的 web.config
文件中添加 System.DirectoryServices
的引用(它不是项目根目录中的主要 web.config
文件)
<system.web.webPages.razor>
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.DirectoryServices" />
....
<!-- etc -->
</namespaces>
</pages>
</system.web.webPages.razor>
阅读其他一些帖子后,我尝试将我的项目目标框架从“.Net Framework 4.5.2”切换到“.NET Framework 4.5”并解决了问题!似乎 System.DirectoryServices 已在 .Net Framework 4.5.2 中删除,这看起来很奇怪。也许它已被其他东西取代?
编辑:更改目标框架解决了问题,但在另一个 WS 上,我还能够在我的 'System.DirectoryServices' 参考中将 'Copy Local' 设置为 "True",这解决了问题。所以也许是那个 dll 不在 GAC 中的问题?无论如何,希望这些解决方案之一可以帮助 运行 遇到相同问题的人。
在你的Viewsweb.config中,除了添加命名空间外,你还必须显式添加程序集。仅仅添加到您的项目引用中似乎还不够。这是适合我的观点 web.config:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation>
<assemblies>
<add assembly="System.DirectoryServices.AccountManagement, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</assemblies>
</compilation>
</system.web>
<system.web.webPages.razor>
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.DirectoryServices.AccountManagement" />
</namespaces>
</pages>
</system.web.webPages.razor>
</configuration>
实际上,正确的方法是添加对 DirectoryServices 的引用。它与 .NET Framework 版本无关。
在解决方案资源管理器中右键单击您的项目,然后 select 添加 -> 引用,然后 select System.DirectoryServices。
它发生在 .cs
在 App_code
使用<add assembly="System.DirectoryServices.AccountManagement
可能会解决
在 .Net 5 安装以下 nuget 包
System.DirectoryServices