2014-11-19 5 views
1

В настоящее время у меня есть проблема с получением 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Загрузка DLL в GAC

В момент, когда я пытаюсь вызовом следующей команды:

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

я получаю ошибку, которая говорит мне, что System.EnterpriseServices не может быть найдено:

Исключение вызова "Load" с "1" аргумент (ы): «не удалось загрузить файл или сборку« System.EnterpriseServices, Version = 4.0.0.0, культура = нейтральный, PublicKeyToken = 7514a164b89fa979 'или одна из его зависимостей. Система не может найти указанный файл.»

Указанной DLL (System.EnterpriseServices) существует * на машине.

Так что теперь мой вопрос, почему не может этот метод найти DLL и что мне нужно сделать/изменить, чтобы заставить эту команду работать?

ПРИМЕЧАНИЕ: Я пробовал это на ванильном Windows Server 2012 R2 с установленными только части ADFS, и я вызвал команду из Powershell.

* ОБНОВЛЕНИЕ: System.EnterpriseServices DLL находится в
C: \ Windows \ Microsoft.NET \ сборка \ 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 \
Поэтому он должен быть доступен с ПКК.

+0

* Где * «существует ли на машине»? Используйте Fuslogvw.exe для устранения неполадок с разрешением сборки. –

+0

Он расположен в C: \ Windows \ WinSxS \ amd64_system.enterpriseservices_b03f5f7f11d50a3a_4.0.9600.16384_none_53a3f9b13fac0ba5 \ System.EnterpriseServices.dll. Есть ли способ получить файл Fuslogvw.exe без установки полного VisualStudio на сервере или, по крайней мере, подобного инструмента без этого зависимость? – Wolf

+0

Это не GAC, он хранится в c: \ windows \ microsoft.net \ assembly. Таким образом, ошибка полностью нормальная. Довольно странно, чтобы получить его в * неуправляемом * бок-о-бок кэш-памяти, должен быть действительно flaky установщик делает это. –

ответ

1

Я думаю, что ваш открытый токен ключа неверен, вы нашли свой собственный ответ с обновлением :).

Это должно быть [System.Reflection.Assembly] :: Load ("System.EnterpriseServices, Version = 4.0.0.0, культура = нейтральной, PublicKeyToken = b03f5f7f11d50a3a")

Дайте этому попытку.

 Смежные вопросы

  • Нет связанных вопросов^_^