Включить другой файл MSI в мой проект установки - PullRequest
9 голосов
/ 12 ноября 2008

Я пытаюсь создать программу установки для веб-сайта ASP.NET. Мне нужно убедиться, что на целевом компьютере установлен sqlxml.

Я должен убедиться, что на целевой машине установлено программное обеспечение, и, если нет, запустить MSI-файл до или после основной установки.

Я - полный новичок с проектами установки, так что, возможно, это очевидно, но после нескольких часов работы в Интернете я не нашел удовлетворительного решения. Я читал о WiX и т. Д., Но я ищу (если возможно) простое решение.


Спасибо вам обоим!

Я понимаю, что установщик не может запустить другой. Я думал о функциональности, аналогичной Prerequisites (в свойствах проекта). Там я могу проверить компонент, и он будет автоматически установлен, если это не так. Мне не нужно больше ничего делать. Но самое важное для меня - это то, что установка не запустится, если она не нужна.

Я также попробовал MSM-решение, но не смог найти. Может быть, я смогу сделать это сам? Хотя я еще не пробовал.

Ответы [ 3 ]

5 голосов
/ 12 ноября 2008

К сожалению, вы не можете запустить один установщик из другого, так как одновременно может работать только один. Вам нужно связать их вместе и запустить один за другим. Google "MSI Chaining". Это часто является причиной, по которой такие продукты, как Visual Studio, используют внешний файл setup.exe, который запускает программы установки один за другим.

4 голосов
/ 12 ноября 2008

Похоже, вам нужно «связать» установки http://objectmix.com/xml-soap/84668-installing-sqlxml-net-app.html

Вы можете получить повторную версию здесь http://www.microsoft.com/downloads/details.aspx?FamilyID=51D4A154-8E23-47D2-A033-764259CFB53B&displaylang=en

Можете ли вы добавить это в качестве предварительного требования для вашей установки? Что вы используете для создания установки?

Edit:
Я посмотрел, как можно проверить, установлен ли SQLXML, и наткнулся на это:
http://www.tech -archive.net / Архив / SQL Server / microsoft.public.sqlserver.xml / 2005-04 / msg00110.html

В системе, в которой я сейчас нахожусь, есть следующий ключ HKEY_CLASSES_ROOT \ SQLXMLX (обратите внимание на X в конце), поэтому вам может потребоваться немного больше выяснить, что представляет собой действительный ключ.

Я не знаком с авторингом установки Visual Studio, но если вы можете добавить запись в таблицы AppSearch и RegLocator, вы сможете проверить наличие ключа реестра при запуске установки. Смотри здесь
http://msdn.microsoft.com/en-us/library/aa371564(VS.85).aspx

Таблица Reglocator дает вам возможность установить свойство со значением из реестра, если оно найдено. Затем вы можете использовать это в условии пользовательского действия.

Многое можно собрать, но я надеюсь, что это приведет вас в правильном направлении.

1 голос
/ 12 ноября 2008

Брент ответ правильный. Я бы просто добавил, что иногда вы можете найти «модуль слияния» для битов, от которых вы зависите. Это файл .msm. Вы, безусловно, можете включить 1 или более из них в свой файл .msi. Я понятия не имею, доступен ли модуль слияния для SQLXML. К сожалению.

...