在GAC中加载DLL

时间:2014-11-19 17:50:10

标签: dll windows-server-2012-r2 global-assembly-cache

目前我遇到了将DLL加入Windows GAC的问题。我尝试按照创建DLL并按照此博客文章中的描述加载它的步骤: http://blogs.technet.com/b/cloudpfe/archive/2014/02/01/how-to-create-a-custom-authentication-provider-for-active-directory-federation-services-3-0-part-2.aspx

在我尝试调用以下命令时:

[System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7514a164b89fa979")

我收到错误消息,告诉我找不到System.EnterpriseServices:

  

异常调用"加载"用" 1"参数:"无法加载文件或   assembly&System™企业服务,版本= 4.0.0.0,文化=中立,   公钥= 7514a164b89fa979'或其中一个依赖项。该   系统找不到指定的文件。"

指定的DLL(System.EnterpriseServices)在计算机上存在*。

所以现在我的问题是,为什么这个方法不能找到DLL,我需要做什么/改变才能让这个命令工作?

注意:我在安装了ADFS部件的vanilla Windows Server 2012 R2上尝试过此操作;我已经从Powershell中调用了命令。

*更新: System.EnterpriseServices DLL位于
C:\ Windows \ Microsoft.NET \ assembly \ GAC_64 \ System.EnterpriseServices \ v4.0_4.0.0.0__b03f5f7f11d50a3a

C:\ Windows \ WinSxS \ amd64_system.enterpriseservices_b03f5f7f11d50a3a_4.0.9600.1638 4_none_53a3f9b13fac0ba5 \
因此,它应该可以从GAC获得。

1 个答案:

答案 0 :(得分:1)

我认为您的公钥标记不正确,您在更新后找到了自己的答案:)。

应该是 [System.Reflection.Assembly] :: Load(" System.EnterpriseServices,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a ")

试一试。