InstallShield Limited Edition — проблемы со страницей общей информации и сбоем VS 2010

Я думаю, что скоро пожалею о том дне, когда решил использовать InstallShield, а не WiX.

У меня был небольшой опыт работы с WiX, и он казался немного сложным в использовании, поэтому, когда пришло время для реального проекта, я решил использовать новый Flexera InstallShield LE для Visual Studio 2010. Сначала это казалось таким простым, что я создал и скомпилировал первый установочный проект без проблем. Ему даже удалось извлечь COM-информацию из какой-то сторонней библиотеки (насколько мне известно, она была скомпилирована с использованием VC 6).

Но когда я добавил еще несколько проектов установки InstallShield (ISL) в то же решение, появились странные проблемы. Если я отредактирую страницу общей информации одного проекта ISL, а затем нажму кнопку «Сохранить все», информация внезапно смешается с частями из других проектов ISL, некоторые поля будут отображаться как UNITITIALIZED STRING, а некоторые поля просто перепутаются. И когда я открываю другие проекты ISL, я вижу, что и там информация перепутана. Единственное решение, по-видимому, состоит в том, чтобы выгрузить все другие проекты ISL при редактировании страницы общей информации.

Проблема номер два: сбои. Мой проект представляет собой смешанное приложение C++/C#. Иногда при редактировании неуправляемого кода C++ Visual Studio просто аварийно завершает работу при выполнении определенных операций (например, комментирование некоторых блоков кода, вырезание, вставка). Я даже установил Visual Studio 2010 SP1, но это не помогло. Сбои полностью прекратились, когда я выгрузил все проекты ISL.

В любом случае, я разочарован, и теперь у меня есть выбор:

  • оставайтесь с ISL, создайте свой собственный исполняемый файл, который будет установлен и будет запускать regsvr32. Тем не менее, мне придется жить с сбоями Visual Studio и проблемами со страницей общей информации.

  • перейти к XML установщика Windows. Но я не уверен, на каком он сейчас этапе, не будет ли у меня таких же проблем? Может ли WiX зарегистрировать COM для меня (также может ли он зарегистрировать 32-битные библиотеки DLL в 64-битных системах, используя regsvr32 из папки syswow64)? Стабильна ли она с Visual Studio 2010?

Я буду очень признателен за ваши предложения о том, что мне делать — оставаться с ISL или перейти на WiX, особенно от тех, кто является опытным пользователем WiX в Visual Studio 2010.


person JustAMartin    schedule 15.06.2011    source источник


Ответы (1)


Я настоятельно рекомендую перенести установщики установки на использование XML установщика Windows (WiX).
Я сделал это много лет назад и никогда не оглядывался назад. :)

Wix v3.5 очень стабилен. У меня не было проблем с его интеграцией с Visual Studio, среди многих других его функций.

Это открытый исходный код, и сообщество очень полезно.

Вы можете использовать программуheat.exe для извлечения информации COM из файла. http://wix.sourceforge.net/manual-wix3/heat.htm

Вы можете вызвать regsvr32.exe, например, на целевом компьютере с помощью встроенного пользовательского действия Quiet Execution
http://wix.sourceforge.net/manual-wix3/qtexec.htm

Эта ссылка также описывает, как запускать 64-битные исполняемые файлы.

Свойство [SystemFolder] можно использовать, например, для выполнения файла в каталоге c:\windows\syswow64.
http://msdn.microsoft.com/en-us/library/aa372055.aspx

Технология WiX DTF идеально подходит для написания пользовательских действий msi на C#.

ХТН.

person Rami A.    schedule 22.06.2011