Я пытаюсь развернуть пару сторонних сборок в GAC с WiX.Некоторые из этих сборок являются смешанными сборками.Обычный способ сделать это - установить атрибут сборки соответствующего файла в «net».Тем не менее, выполнение этого способа приводит к ошибке во время установки:
Error 1938. An error occurred during the installation of assembly ...One or more modules of the assembly could not be found. HRESULT: 0x80131042. assembly interface: IAssemblyCacheItem, function : Commit, component: ... MSI (s) (A8:B0) [12:32:39:085]:.... assembly .... One or more modules of the assembly could not be found. HRESULT: 0x80131042. assembly interface: IAssemblyCacheItem, function: Commit, component:...
Инструкции, которые я получил от поставщика для установки сборки в gac:
- Поместите всеdll (d1, d2, d3, ..., dn) в том же каталоге.
- Запустите gacutil для подмножества этих библиотек.
Если я возьму «сырой» взгляд в gac, содержимое одной из папок будет выглядеть так:
gac_32 \ d1 \ 0.0.0.0_271E3736135E91A2 \ d1.dll gac_32 \ d1 \ 0.0.0.0_271E3736135E91A2 \ d2.dll gac_32 \ d1 \ 0.0.0.0_271E3736135E91A2 \ d3.dll
из найденного gacutil.dll и d3.dll должны быть помещены в тот же каталог, что и d1.dll, и автоматически сделали это.
Как это сделать с помощью wix?Единственный способ, которым я сейчас вижу, - это вызвать gacutil как пользовательское действие, но это не похоже на хорошее решение.
Спасибо, Стефан