У меня есть приложения A и B, в обоих из которых используется общий компонент S. Если бы S был сборкой DLL, я бы просто поместил копию этого приложения в каждое приложение как частную сборку.Но S - это EXE, и A и B общаются с ним по протоколу.Когда A и B работают, они должны общаться с одним и тем же экземпляром S. Возможные сценарии:
- Пользователь устанавливает A, а S устанавливается вместе с ним, поскольку A зависит от S. Позже пользователь устанавливаетB, но S не установлен, потому что он уже там.
- Пользователь устанавливает A, и S устанавливается вместе с ним.Позже пользователь устанавливает B, который поставляется с более новой версией S. S заменяется новой версией.
- A и B устанавливаются (и S).Пользователь удаляет B, но S сохраняется, потому что A все еще там.Позже пользователь удаляет A и S тоже удаляется, потому что от этого больше не зависит ни одно приложение.
Новые версии S будут совместимы с более старыми версиями A и BE g.если протокол изменяется, S будет поддерживать как старый, так и новый протокол и т. д.
Какая стратегия развертывания будет наилучшей в этом случае?Я использую установщик Windows (MSI).Кажется, хорошо иметь S как отдельное приложение с отдельным MSI и вызывать этот MSI из других MSI, но, возможно, есть более подходящие подходы.Может быть, МСМ? .. Я бы хотел, чтобы установка была простой.Заранее спасибо за ваши ответы.