1

目前我在将 DLL 放入 Windows GAC 时遇到问题。我尝试按照此博客文章中所述创建 DLL 并加载它的步骤:http: //blogs.technet.com/b/cloudpfe/archive/2014/02/01/how-to-create-a-用于活动目录联合服务的自定义身份验证提供程序 3-0-part-2.aspx

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

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

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

使用“1”参数调用“加载”的异常:“无法加载文件或程序集‘System.EnterpriseServices,Version=4.0.0.0,Culture=neutral,PublicKeyToken=7514a164b89fa979’或其依赖项之一。系统找不到指定的文件。”

机器上确实存在指定的 DLL (System.EnterpriseServices)。

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

注意:我在仅安装了 ADFS 部件的普通 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 获得。

4

1 回答 1

1

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

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

试试这个。

于 2015-05-15T22:41:27.057 回答