Как добавить 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 (временный каталог) и используйте его оттуда. затем стереть временный каталог после.