Лучшая практика для выпуска Microsoft DLL в настройке

Я работаю над настройкой, которая хочет включить DLL-библиотеку Microsoft.Web.Services3 (WSE 3.0) . Тем не менее, я обычно не люблю включать Microsoft DLL в наши установки, кроме как с помощью распространяемых Microsoft. Существует как разработчик, так и повторный установочный пакет, доступный от Microsoft.

Таким образом, в качестве наилучшей практики следует ли включать одну DLL в мою установку или отсылать их к одной из установок WSE 3.0 (при условии, что они еще не установлены)?

20.08.2008 12:22:41
Я должен признаться, что (особенно для этой конкретной DLL) я всегда включаю ее в свои настройки - но затем я работаю в корпоративной среде, а не выпускаю публично.
samjudson 20.08.2008 13:26:05
5 ОТВЕТОВ
РЕШЕНИЕ

Обычно перераспределение любой из DLL-библиотек Microsoft вне распространяемого пакета запрещено их лицензионным соглашением, поэтому вы можете сначала проверить соответствующее лицензионное соглашение для этой библиотеки DLL.

Как правило, я бы предпочел пакет redist, так как он гарантирует, что он правильно «зарегистрирован» в системе, то есть, если вы устанавливаете более новую версию redist, он обновляется (например, DirectX) или не перезаписывается, если это более старая версия (также как DirectX).

5
20.08.2008 12:28:10

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

Однако, если DLL не очень большая, и вы подозреваете, что она будет у немногих пользователей, в интересах лучшего пользователя я бы предварительно упаковал ее в установщик по умолчанию. Тем не менее, вы всегда можете иметь установщик, который не включает его для тех, кто хочет меньший установщик ... многие другие поставщики делают это постоянно.

0
20.08.2008 12:27:30

Проверьте в установщике, установлен ли WSE 3.0 и не предупреждает ли он этого человека, и отмените установку, если она продолжается в обычном режиме. Я не включил бы DLL в ваш установочный пакет, потому что он мог устареть довольно быстро, и я не знаю, разрешит ли это EULA.

2
20.08.2008 12:27:34

Я полагаю, что лицензионное соглашение MS не позволяет вам распространять код MS, если только он не находится в распространяемом пакете.

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

2
20.08.2008 12:28:07

Спасибо за предложения / комментарии! После борьбы с установкой Windows Installer я выяснил, как лучше всего включить Redist WSE30 и открыть диалоговое окно, если оно не установлено.

Я знаю, что это не лучшая практика (и против лицензионного соглашения Microsoft, как уже упоминалось) просто включать DLL, поэтому я подумал странным, что она пытается включить WSE DLL вне redist, особенно когда redist зарегистрирован в инсталляторе (он отображается как предварительный запрос в свойствах).

Еще раз спасибо.

0
20.08.2008 13:33:55