web-dev-qa-db-ja.com

タイプまたは名前空間名「DirectoryServices」は名前空間に存在しませんか?

CS0234:タイプまたは名前空間名「DirectoryServices」は名前空間「System」に存在しません(アセンブリ参照がありませんか?)

このページは問題なく機能しており、直接サービスからのレコードをエラーなしで表示しました。しかし、今では上記のエラーが発生します。

 <asp:GridView ID="gvUsers" runat="server" AutoGenerateColumns="false" DataSourceID="odsUsers"
                                    AllowPaging="true" AllowSorting="true" Width="100%">
<Columns>
 <asp:TemplateField HeaderText="User Name">
 <ItemTemplate>

<%#((System.DirectoryServices.DirectoryEntry)Container.DataItem).Properties["userPrincipalName"].Value%>

   </ItemTemplate>
   </asp:TemplateField>
/Columns>
</asp:GridView>

プロジェクトは正常にビルドされますが、ページを開くとエラーが発生します

15
Ali

ディレクトリサービス参照を追加したら、referenceを右クリックしてpropertiesに移動します。セットする "CopyLocal"をtrueに。

40
Kevin

私のアプリケーションを開発ボックスからIISボックスに完全に誤って「公開」していると確信しています。しかし、私はこの解決策を見つけました here 、およびそれは私のために働いた。

Webアプリケーションを使用している場合は、web.configに次のコードを追加します。

<compilation debug="true" targetFramework="4.0" >
    <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>

1-「Refrences」でマウスの左ボタンをクリックします
2-[参照を追加...]をクリックします
3-「参照」ボタンをクリックします
4-フォルダ内のフォローファイルを検索:

「C:\ Program Files\Reference Assemblies\Microsoft\Framework.NETFramework\v4.6.1」

-System.DirectoryServices.dll
-System.DirectoryServices.AccountManagement.dll

5-それらを選択します
6-「OK」ボタンを押します

9
Ali Reza

私にとってうまくいった簡単な方法は、References => Add Referenceを右クリックして、System.DirectoryServices(および必要なサブアセンブリ)を選択することでした。

2
ShamPooSham

.NET Framework 4.5.2を対象としたMVCプロジェクトを使用して、Visual Studio 2015でこの問題に遭遇しました。ターゲットフレームワークを.NET 4.5に変更すると、問題が解決しました。

2
DVK

Asp.netページにインポートディレクティブを追加する必要があります。完全修飾であることを確認してください。プロジェクトにもアセンブリへの参照があることを確認してください。

 <%@ Assembly Name="System.DirectoryServices, Version=2.0.0.0,
     Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" %>

参照にアセンブリ「System.DirectoryServices.AccountManagement」が追加されている場合に機能します。 System.DirectoryServicesの追加は機能しません。

0
Faiyaz

私も同じ問題を抱えていました。 WindowsフォルダーでDirectoryServices.dllを検索しました。出てきたバージョンはすべて同じサイズだったので、1つ選んでWebサイトのbinフォルダーにコピーしました。 binフォルダーがない場合は、作成してください。それを行うと、エラーなくWebページを開くことができました。

0
Eldritch

System.DirectoryServices に(プロジェクト内の)参照を追加する必要があるようです。 aspxマークアップページのようなもので使用しているため、コンパイラーは「ビルド」中にそれらを飛ばせるが、実際にページを実行すると失敗することがあります。

0
Nate