Как сослаться на путь к сборке в GAC в записях реестра, добавленных пакетом установщика Windows? - PullRequest
1 голос
/ 20 сентября 2008

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

Так что вопрос:

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

1 Ответ

2 голосов
/ 20 сентября 2008

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

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

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

...