【问题标题】:Error Could not load file or assembly 'Interop.ActiveDs'错误无法加载文件或程序集“Interop.ActiveDs”
【发布时间】:2011-08-10 14:48:55
【问题描述】:

我正在使用 c# 进行一些活动目录工作,但我的页面上出现此错误

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 位机器上,它运行的服务器也是 x64

我添加了 ActiveDS 参考,这样我就可以做这样的事情

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

所以我的问题是,为什么它不能加载 ActiveDs 引用?

【问题讨论】:

  • 仅供参考,您不需要在主题前加上“ASP.NET C#”。我们在Stack Overflow 上有标签,标签做得更好。

标签: c# asp.net active-directory filenotfoundexception


【解决方案1】:

试试这个:

1) 复制 C:\Windows\SysWOW64\ActiveDs.dll 及其对应的 将 ActiveDs.tlb 文件复制到解决方案中的文件夹;称它为 外部参考文件夹

2) 删除项目中对 ActiveDs 的引用

3) 添加一个新的引用,但这次不是选择 COM 版本,请选择 TLB。 Visual Studio 将创建 Intero 为你包装。

【讨论】:

  • 试过了...如果服务器运行 64 位,我为什么要这样做?
  • 一些为 32 位环境设计的旧组件在 64 位中无法工作。我之前遇到过几次这个问题,只是不是那个组件。
  • VS 是否在创建互操作 DLL?将 DLL 复制到您的 BIN 文件夹,然后在 Copy Local 设置为 true 的情况下删除并读取引用。阅读参考后,确保 DLL 和 Interop DLL 都存在于 BIN 文件夹中,然后重试。
  • Interop DLL 在 bin\Release 中 - 我应该将 DLL 的副本放在同一个地方还是在它上面,就在 bin 中
  • 尝试将它们放在同一个文件夹中。
【解决方案2】:

最好不要引用 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
}

【讨论】:

    【解决方案3】:

    我创建了一个类似于 Brian Desmond 的答案的枚举:

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

    并像这样检查通用组和安全组:

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

    【讨论】:

    • 你就像@BrianDesmond 所说的那样。你应该接受他的回答。 -1
    猜你喜欢
    • 1970-01-01
    • 2010-10-07
    • 2023-03-05
    • 1970-01-01
    • 2013-02-23
    • 2015-09-25
    • 2016-12-23
    • 1970-01-01
    相关资源
    最近更新 更多