2011-08-10 39 views
2

私は、C#でいくつかのActive Directory仕事をしていると私は自分のページにこのエラーを取得していエラーは、ファイルまたはアセンブリをロードできませんでした「Interop.ActiveDs」

System.IO.FileNotFoundException: Could not load file or assembly 'Interop.ActiveDs, Version=1.0.0.0, Culture=neutral, PublicKeyToken=46db4b78e98e1c9d' or one of its dependencies. The system cannot find the file specified. 

それはActiveDSを参照して、いくつかの問題を持っていますそれは私が64ビットマシンとそれが実行するサーバー上のよ を添加し、私は私をこの

newRoleGroup.Properties["groupType"].Value = ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_UNIVERSAL_GROUP; 

ような何かを行うことができますので、私はActiveDS参照を追加したものx64

です質問は、なぜActiveDsリファレンスを読み込むことができないのですか?

+3

を働きました「ASP.NET C#」で件名に接頭辞を付ける必要はありません。私たちは[SO]にタグを付けており、タグはより良い仕事をしています。 –

答えて

3

あなたはCOMライブラリへの参照を取り、代わりにちょうどあなたのコード例では、適切な定数を宣言していないオフはるかに良いだろう:

enum ADS_GROUP_TYPE_ENUM { 
    public long ADS_GROUP_TYPE_GLOBAL_GROUP = 0x00000002, 
    public long ADS_GROUP_TYPE_DOMAIN_LOCAL_GROUP = 0x00000004, 
    public long ADS_GROUP_TYPE_LOCAL_GROUP   = 0x00000004, 
    public long ADS_GROUP_TYPE_UNIVERSAL_GROUP  = 0x00000008, 
    public long ADS_GROUP_TYPE_SECURITY_ENABLED  = 0x80000000 
} 
4

このお試しください:Cのコピー)

1:あなたのソリューション内のフォルダに\ WINDOWS \ SYSWOW64 \ activeds.dllを、そのそれぞれの のActiveds.tlbファイルを、 外部参照フォルダ

2それを呼び出す)プロジェクト

3でActiveDsへの参照を削除して)新しい参照を追加しますが、代わりにCOM バージョンを選ぶのこの時期は、代わりにTLBを選びます。 Visual StudioはIntero ラッパーを作成します。

+0

それを試してみてください...サーバが64ビット版で動作しているとすれば、どうしてですか? – abney317

+0

32ビット環境向けに設計された古いコンポーネントの中には、64ビットで動作しないものがあります。私はその問題を数回前に実行しましたが、そのコンポーネントだけではありません。 –

+0

私はもう一度試してみる – abney317

-2

この方法は、FYI

private enum GroupType : uint 
{ 
    UniversalGroup = 0x8, 
    DomainLocalGroup = 0x4, 
    GlobalGroup = 0x2, 
    SecurityGroup = 0x80000000 
} 

private const int UniversalSecurityGroup = unchecked((int)(GroupType.UniversalGroup | GroupType.SecurityGroup)); 
+2

@BrianDesmondが言ったとおりにしました。あなたは彼の答えを受け入れたはずです。 -1 – jgauffin

関連する問題