Для использования сборок GAC требуются разрешения

Я только что установил две библиотеки в GAC и пытаюсь использовать их в простом приложении, где я вызываю только конструктор своего метода:

  MyMethod m = new MyMethod();

Когда я пытаюсь запустить .exe своего приложения, я вижу его в процессах диспетчера задач, но оно не загружается.

Если я повышаю права доступа к исполняемому файлу, то простое приложение появляется в диспетчере задач и также загружается. Но почему мне нужно давать права администратора приложению, использующему сборки GAC? Это первый раз, когда это происходит со мной.

Как я могу использовать сборку GAC, не запрашивая разрешения администратора?

Я думаю, что у меня есть разрешение GAC на чтение, так как я могу читать старую версию, но не более новую...

РЕДАКТИРОВАТЬ: *Я понял, что если я останусь на несколько минут, .dll потребляется и приложение запускается. Но каждый раз, когда мне нужна сборка, которую я установил в GAC, происходит очень большая задержка.* Есть идеи, почему?

EDIT: Извините, я не сказал, что это за библиотека, потому что она называется UserControlLibrary.dll, я разработал ее. И есть более старые версии моей библиотеки, которые используются в некоторых моих старых проектах.

Чтобы использовать новую, я опубликовал политику, которая перенаправляет со старой версии сборки на новую.

ПРИМЕЧАНИЕ. Использование старой версии работает нормально. Использование нового, не работает (после перенаправления).


person Sonhja    schedule 07.06.2013    source источник
comment
Почему отрицательные голоса и не объясняя почему? У меня действительно важная проблема, и я буду очень благодарен, по крайней мере, за то, что люди объясняют, что отрицательные голоса, поэтому я могу улучшить свой вопрос, и, к счастью, кто-то может мне помочь...   -  person Sonhja    schedule 07.06.2013


Ответы (1)


Можете ли вы более конкретно указать, какие сборки и что ваш код пытается сделать?...

Предоставление привилегий администратора - это своего рода ловушка... более вероятно, что требуется определенное разрешение, которое вы не предоставили...

например вот небольшая частушка о той же проблеме для SharePoint, где у учетной записи SSRSSvcAccount не было разрешения на чтение для GAC, что было решено с помощью

cacls.exe %windir%/assembly /e /t /p DOMAIN\SSRSSvcAccount:R
person Paul Zahra    schedule 07.06.2013
comment
Это не проблема. Я могу читать из GAC, но мое приложение остается в фоновом режиме в TaskManager, если оно не запущено от имени администратора, но не загружается. - person Sonhja; 07.06.2013
comment
Как вы установили его в GAC? Вы смотрели на ACL; каталог systemroot часто защищается с помощью списка управления доступом (ACL) для управления доступом на запись и выполнение. Поскольку глобальный кэш сборок устанавливается в подкаталог системного корневого каталога, он наследует ACL этого каталога. - person Paul Zahra; 07.06.2013
comment
Я устанавливаю его с помощью WiX, публикуя его как Assembly=.net - person Sonhja; 07.06.2013
comment
хм... где находится dll? это в доверенной зоне? - person Paul Zahra; 07.06.2013