![](/img/trans.png)
[英]The type or namespace name 'DirectoryServices' does not exist in the namespace?
[英]'DirectoryServices' does not exist in the namespace 'System'
我試圖在 ASP.Net MVC (C#) 項目中使用 DirectoryEntry 並收到以下錯誤:
命名空間“
System
”中不存在類型或命名空間“DirectoryServices
”。
我在我的項目中添加了以下引用:
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
這似乎通常是一個簡單的參考問題,但如上所述,參考應該在那里。 有什么建議嗎?
實際上,正確的方法是添加對 DirectoryServices 的引用。 它與 .NET Framework 版本無關。
在解決方案資源管理器中右鍵單擊您的項目並選擇添加 -> 引用,然后選擇 System.DirectoryServices。
看來你正在努力
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>
在您的視圖web.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>
在 .Net 5 安裝以下 nuget 包System.DirectoryServices
看起來您正在嘗試從System
命名空間加載DirectoryEntry
,就像您在代碼中編寫的一樣:
System.DirectoryEntry entry = ...
代替:
System.DirectoryServices.DirectoryEntry e = ...;
或者干脆:
DirectoryEntry e = ...;
在閱讀了其他一些帖子后,我嘗試將我的項目目標框架從“.Net Framework 4.5.2”切換到“.NET Framework 4.5”並解決了問題! 似乎 System.DirectoryServices 已在 .Net Framework 4.5.2 中刪除,這似乎很奇怪。 也許它已經被其他東西取代了?
編輯:更改目標框架解決了問題,但在另一個 WS 上,我還能夠在我的“System.DirectoryServices”參考中將“Copy Local”設置為“True”,從而解決了問題。 所以也許是那個 dll 不在 GAC 中的問題? 無論如何,如果他們遇到同樣的問題,希望這些解決方案之一可以幫助他們。
它發生在.cs
在App_code
下的App_code
使用<add assembly="System.DirectoryServices.AccountManagement
可以解決這個問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.