Как добавить DLL в GAC из проекта InstallScript в InstallShield?

Как добавить DLL в GAC из проекта InstallScript в InstallShield? Я попытался добавить [GLOBALASSEMBLYCACHE] в качестве пункта назначения для компонента, но безуспешно. Это говорит мне, что это недействительные данные для пункта назначения.

5 ответов

Решение

Проект только с установочным сценарием не может поместить файл в GAC. Вам нужен скрипт MSI для установки проекта. Я закончил тем, что создал отдельный установщик Windows и использовал LauchAppAndWait из Install Shield для его запуска. В значительной степени хак, потому что я не хотел переключаться на проект MSI.

Вместо создания MSI-проекта InstallScript вы можете создать модуль слияния, который устанавливает нужные компоненты в GAC. Затем включите MSM в установку кабины InstallScript. Таким образом вы избежите раздражения LaunchAppAndWait.

Gacutil может сделать это, но Gacutil не распространяется. Можно написать свой собственный код для вызова API Fusion, а затем вызывать его из installscript, но, честно говоря, MSI намного проще.

Сценарии IS могут обращаться к Win32 и другим файлам ввода DLL, поэтому вам не потребуется выделенный установщик MSI.

У нас есть программа установки, которая должна изменить права доступа к файлу в начале процесса установки. Мы добавили утилиту в наш раздел файлов поддержки и рекламных щитов, и они оказались в папке Temp установки. Затем мы используем LaunchAppAndWait и т. Д.

Другой вариант может заключаться в том, чтобы изменить вашу сборку.net для автоматического GAC при регистрации. Это проще, если использовать System.Configuration.Install & friends.

gacutil можете сделать это, просто поместите его в supportdir (временный каталог) и используйте его оттуда. затем стереть временный каталог после.

Другие вопросы по тегам