Включение необходимых библиотек DLL в проект Windows решает проблему? - PullRequest
0 голосов
/ 16 июня 2009

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

Это необходимо для защиты от ситуации, когда (например) файл DLL MVC обновляется на сервере, на котором развернуто программное обеспечение, и продукт не работает, как он был написан для предыдущей версии библиотеки DLL.

Если в продукт включен файл DLL MVC определенной версии, на который ссылается «локально», это предотвращает возникновение этой проблемы. (В идеальном мире каждый продукт, который будет установлен на сервере назначения, будет обновлен до самой последней версии, но это не всегда практично)

Мое беспокойство и вопрос в том, даст ли это ложное чувство безопасности, или же на самом деле не справится с проблемой в следующей ситуации: если версия 1.0 файла MVC DLL использует метод X стандартной библиотеки Microsoft DLL Y и этот DLL-файл Y обновлен, мы будем в той же ситуации, когда сломанный продукт?

Ответы [ 3 ]

2 голосов
/ 16 июня 2009

Предполагая, что вы имеете в виду библиотеки MSVC (Microsoft Visual C ++), правильным решением является использование манифеста приложения. Библиотеки MSVC поддерживают установку Side-Side (SxS). Это означает, что новая версия этих DLL не заменяет старую версию. Ваш манифест приложения сообщает Windows, какую версию DLL вы хотите.

0 голосов
/ 16 июня 2009

В зависимости от того, насколько большим будет ваш конечный продукт, рассмотрите возможность статической компоновки вашей программы. Это предотвратит страшный адский DLL, так как вам не придется выдавать DLL.

0 голосов
/ 16 июня 2009

Я не знаю конкретно о MVC, но у вас есть большая проблема, если конфликтующая версия dll для зависимости установлена ​​в GAC на вашей целевой машине, так как она будет использоваться вместо локального файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...