2014-02-19 3 views
2

В настоящее время я создаю продукт, распространяемый через MSI Windows Installer. Этот продукт интегрируется нашими клиентами, используя различные формы, такие как мы, в их собственной MSI, используя bootstrapper/chainner, такие как WiX Burn или инструменты разработки, такие как InstallShield.Каковы ограничения/преимущества использования MSM вместо MSI?

Учитывая этот сценарий, я всегда хотел знать, какие ограничения и/или преимущества использовать модули слияния (MSM) вместо хранения MSI, а также то, что в настоящее время рекомендуется использовать для выбора одного из них ,

+0

Надеемся, что обсуждение помогло - пожалуйста, убедитесь, что вы спрашиваете своих клиентов, что они предпочитают. И помните, что совсем другое - установить настоящий автономный продукт для общего местоположения для всех клиентов или просто добавить несколько файлов в собственную папку установки каждого продукта. –

+0

@ Glytzhkof обсуждения было действительно полезно. Я возьму все советы. Благодаря! –

ответ

2

На бумажных модулях слияния прекрасно, но в реальном мире я нахожу их неуклюжими для обновления и, следовательно, склонными к ошибкам, поскольку они могут быть объединены во многие настройки, прежде чем их обнаружат дефектными. В результате я не рекомендую объединить модули вообще. Я предпочитаю один MSI, который может выполняться как пакетный процесс через загрузочный файл или пакетный файл, который также может быть легко обновлен. Это позволяет избежать всех проблем, которые обычно не интуитивно понятны.

Я хочу добавить, что модули слияния работают хорошо для действительно общих файлов, установленных в местах, в файловой системе, которые предназначены для общих файлов и изменяются редко. Это, как правило, OS-runtimes. Эти модули слияния обычно тестируются и работают нормально. Тем не менее, часто я вижу, что люди используют модули слияния для файлов, которые в конечном итоге часто меняются, и что они затем устанавливают в разных местах в разных вариантах в ad-hoc режиме. Такой вид использования - полный беспорядок и огромные усилия.

Сказав все это - я действительно успешно использовал модули слияния, когда мне было необходимо расширенное управление выпуском с повторяющимся и неизменным включением набора файлов через модуль слияния в несколько установок. Даже тогда я столкнулся с проблемой версии через некоторое время с несколькими файлами, нуждающимися в обновлении, и последующими незначительными ошибками с использованием неправильного модуля слияния, когда я оставил проект кому-то другому. Мне также пришлось перестроить все настройки из-за незначительного исправления ошибок модуля слияния. Затем все настройки должны были пройти QA снова. Очень расстраивает такая плотная муфта.

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

+0

Спасибо, что ответили! У вас есть какие-либо ссылки на проблему с версией? Я просто хочу знать, потому что мой продукт использует много крупных обновлений ... –

3

В модулях слияния нет ничего плохого. Их основное использование (которое не упоминалось) заключается в совместном использовании. Если вы хотите, чтобы один и тот же набор общих файлов в нескольких файлах MSI, они должны иметь одинаковый набор компонентов для сохранения правил совместного доступа. Или, если вы даете файлы клиентам для их использования (например, Microsoft) в своих сборках MSI, дайте им объединить модули. Это одна из причин того, что MS и другие поставщики перераспределяют модули слияния, чтобы каждый мог создавать свои MSI и устанавливать их в одной системе без бедствий, связанных с совместным использованием файлов. Я также видел модули слияния, используемые в качестве общего интерфейса для файлов MSI. Но в основном они необходимы, чтобы убедиться, что общие файлы используются правильно. Я расскажу вам по опыту, что катастрофа, вызванная неправильным использованием общих файлов, намного хуже, чем любая воспринимаемая трудность с использованием модулей слияния. Также обратите внимание, что они универсальны и могут быть включены во все инструменты, которые создают файлы MSI.

Я никогда не обнаружил, что слияния модулей трудно исправить, изменить или исправить. Основные обновления не являются проблемой.Единственная потенциальная проблема, которую я видел, - это процессы сборки, которые восстанавливают все двоичные файлы в модуле слияния во время создания патча (.msp). Если только один бинар нуждается в исправлении, но вы их скомпилируете, их версии и внутренности могут измениться настолько, что процесс патча (дельта между двумя файлами MSI и их содержимым) скажет вам, что они должны быть включены в патч, потому что они 'изменилось, но этой проблемы можно избежать, если это действительно проблема.

+0

Спасибо @PhilDW за то, что нашли время ответить! Поэтому, учитывая, что у меня есть продукт, с которым могут взаимодействовать разные клиенты, было бы хорошим подходом к созданию MSM, а затем, если мы хотим распространять наш продукт самостоятельно, создадим MSI с этим MSM? Или в этом случае мы должны перейти непосредственно к MSI? Кроме того, знаете ли вы, что использование MSM ограничено MSI? Как насчет пользовательских действий? –

+0

Согласитесь с большинством из этого. Я по-прежнему считаю, что модули слияния работают лучше всего для OS-runtimes и файлов, которые действительно разделены в правильном месте для общих файлов. Часто я вижу, что люди используют модули слияния для файлов, которые в конечном итоге часто меняются, а затем они устанавливают в разных местах в разных вариантах в ad-hoc. Полное беспорядок и потраченные впустую усилия. С хорошим дизайном слияние модулей достаточно хорошо. –

+0

Что касается ограничений MSM над файлами MSI, это яблоки и апельсины. MSM можно использовать только при сборке файла MSI - вы не можете устанавливать их контент каким-либо другим способом. У вас есть предположение о файлах MSM, которые я не могу понять, поэтому вопрос озадачен. Если вы передаете MSM-файлы своим клиентам, они могут использовать их только для создания файлов MSI. Если это имеет смысл, сделайте это так же, как Microsoft распространяет модули слияния для людей, чтобы создавать установки, которые поддерживают поддержку ATL, C++ и Dll, поэтому мы все правильно устанавливаем их и совместно используем их. – PhilDW

Смежные вопросы