Как указать путь к сборке в GAC в записях реестра, добавленных пакетом установщика Windows?

StackOverflow https://stackoverflow.com/questions/106414

Вопрос

У меня есть сборка .NET, которая содержит классы, которые должны быть зарегистрированы как ServicedComponent через EnterpriseServices (COM +) и вызываться через COM RPC сторонним приложением.Следовательно, мне нужно как добавить его в GAC, так и добавить запись реестра в разделе HKEY_CLASSES_ROOT\CLSID\{clsid}\CodeBase с указанием пути к библиотеке DLL сборки в папке GAC.(Я не могу полагаться на regsvcs для этого, потому что это 32-разрядная сборка --- она опирается на 32-разрядные сторонние компоненты --- а стороннее приложение, о котором я упоминал ранее, не может видеть классы в Wow6432Node)

Итак, вопрос заключается в следующем:

Доступны ли пути к сборкам, которые должны быть созданы в GAC, или, по крайней мере, путь к самой папке GAC, в установщике Windows в качестве свойств, которые можно использовать в значениях разделов реестра и т.д.?

Это было полезно?

Решение

Если у вас есть компонент для каждого файла, что вам в любом случае необходимо, ключевой путь компонента указывает на местоположение, в котором устанавливается файл (в данном случае GAC).Вы можете использовать ключ компонента в качестве маркера в поле значения записи в таблице реестра вашего MSI.

Предполагая, что у вас есть сборка с ключом файла в таблице файлов "assmb.dll" и соответствующий ей компонент, также "assmb.dll".Вы можете задать поле значения в таблице реестра, чтобы зарегистрировать вашу сборку в [$assmb.dll], и она будет перенесена в место установки сборки.Если этот каталог является GAC, он будет разрешен в соответствии с местоположением GAC.

Вы можете найти более подробную информацию о форматированных полях в MSI здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top