Лучшая практика для выпуска Microsoft DLL в настройке
Я работаю над настройкой, которая хочет включить DLL-библиотеку Microsoft.Web.Services3 (WSE 3.0). Тем не менее, я обычно не люблю включать Microsoft DLL в наши установки, кроме как с помощью распространяемых Microsoft. Существует как разработчик, так и повторный установочный пакет, доступный от Microsoft.
Таким образом, в качестве наилучшей практики, следует ли мне включить одну DLL в мою установку или отнести ее к одной из установок WSE 3.0 (при условии, что она еще не установлена)?
5 ответов
Обычно перераспределение любой из DLL-библиотек Microsoft за пределы распространяемого пакета запрещено их лицензионным соглашением, поэтому вы, возможно, сначала захотите проверить соответствующее лицензионное соглашение для этой библиотеки DLL.
Как правило, я бы предпочел пакет redist, так как он гарантирует, что он правильно "зарегистрирован" в системе, то есть, если вы устанавливаете более новую версию redist, он обновляется (например, DirectX) или не перезаписывается, если это более старая версия (также как DirectX).
Проверьте в установщике, установлен ли WSE 3.0 и не предупреждает ли он этого человека, и отмените установку, если она продолжается в обычном режиме. Я не включил бы DLL в ваш установочный пакет, потому что он мог бы устареть довольно быстро, и я не знаю, позволит ли это EULA.
Я полагаю, что MS EULA не позволяет вам распространять код MS, если только он не находится в распространяемом пакете.
Надлежащий распространяемый файл должен обрабатывать любые другие предпосылки, так что в любом случае это, вероятно, лучший выбор.
Если вы не включите его, вам следует, по крайней мере, сделать ссылку на него прямо на вашем сайте, или чтобы ваш установщик открыл для него веб-браузер (или даже загрузил его автоматически). Или еще лучше, включите распространяемый в ваш программный пакет.
Однако, если DLL не очень большая, и вы подозреваете, что она будет у немногих пользователей, в интересах лучшего пользователя я бы предварительно упаковал ее в установщик по умолчанию. Тем не менее, у вас всегда может быть установщик, который его не включает, для тех, кто хочет установщик меньшего размера... многие другие поставщики делают это постоянно.
Спасибо за предложения / комментарии! После борьбы с установкой Windows Installer я выяснил, как лучше всего включить Redist WSE30 и открыть диалоговое окно, если оно не установлено.
Я знаю, что это не лучшая практика (и против лицензионного соглашения Microsoft, как уже упоминалось) просто включать DLL, поэтому мне показалось странным, что она пыталась включить WSE DLL вне redist, особенно когда redist является зарегистрирован в инсталляторе (он отображается как предварительный запрос в свойствах).
Еще раз спасибо.