目前我遇到了将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获得。
答案 0 :(得分:1)
我认为您的公钥标记不正确,您在更新后找到了自己的答案:)。
应该是 [System.Reflection.Assembly] :: Load(" System.EnterpriseServices,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a ")
试一试。