Было очень простое решение. Я только что инициализировал сервис записи, который поместил ноль в mediaRecorder mediaRecorder, так что после этого я не смог его повторно инициализировать. Устранение этого произошло с помощью намерения, вызвавшего onActivivtyResult (), в onCreate () действия перед запуском службы.
Я думаю, что самый простой способ создать файл .MSI - использовать WiX .
Урок 1 из руководства по WiX - это все, что вам нужно для создания простая установка.
Ну, есть бесплатный способ и способ $$$. Я не могу задокументировать здесь все, но это должно помочь вам начать.
Кстати, да, установщик Windows - это сводящая с ума технология. Часто я думаю, что задача будет простой, но на самом деле она становится сложной. Вам обязательно нужно погрузиться в это, чтобы понять это.
В любом случае, здесь:
Бесплатно: WiX ( здесь )
Это бесплатный инструмент для создания файлов MSI из набора файлов конфигурации XML. Я оставлю вас, чтобы найти учебные пособия в Интернете, но вот суть:
Вы можете сжать свой EXE в установщик, используя следующий тег в файле WXS:
<Binary Id="MYEXE" src="<path to my exe?"/>
Затем вы можете создать настраиваемое действие, которое запускает ваш EXE файл:
<CustomAction Id="EXECA_CALLMYEXE" Return="check" Execute="deferred" BinaryKey="MYEXE"
ExeCommand="my command line"/>
Затем вы вставляете свое настраиваемое действие в InstallExecuteSequence
в соответствующем месте (я почти всегда запускаю свое где-то между InstallInitialize
и InstallFinalize
)
<InstallExecuteSequence>
<Custom Action="EXECA_CALLMYEXE" After="InstallInitialize"><![CDATA[Not REMOVE]]></Custom>
$ $$: Получите InstallShield ( ЗДЕСЬ )
Сначала создайте проект «Базовый MSI» и убедитесь, что вы хотите, чтобы не создавался setup.exe . Вы устанавливаете это в настройках Release.
Затем вы, по сути, делаете то же самое, что и с WiX, но у вас есть пользовательский интерфейс для этого.
Джошуа, я очень хорошо понимаю ваше разочарование. MSI, мягко говоря, необычна - это совершенно новый подход к развертыванию. Тем не менее, при правильном применении MSI предлагает наилучшее развертывание, особенно для корпоративных клиентов.
Какие операции выполняет ваш установщик EXE? Это в основном копия файла, некоторая регистрация COM и некоторые записи в реестр, или это запускает сложную логику установки, настройку баз данных и т. Д.? Причина, по которой я спрашиваю, заключается в том, что, вероятно, было бы очень быстро создать для вас хорошо работающий WIX MSI, чтобы вы могли отказаться от подхода EXE.
Действительно, возможно запустить EXE из MSI, но это требует правильного секвенирования и гарантированно вызовет у вас больше неприятностей, чем простой MSI. Если приложение маленькое и не делает ничего сумасшедшего во время установки, Я был бы рад предоставить вам базовое преобразование WIX.