Распространение mfc42.dll - это все еще необходимо? - PullRequest
1 голос
/ 27 июня 2010

Я работаю над новым продуктом, который использует элемент управления Active-X, для которого требуются библиотеки Microsoft Foundation Class и XML Parser:

MFC42.DLL (6.00.8447.0) MSVCRT.DLL (6.00.8397.0) MSXML3.DLL (8.00.7820.0) MSXML3A.DLL (8.00.7820.0) MSXML3R.DLL (8.00.7820.0)

Поскольку мой продукт предназначен только для Windows XP и новее, мне было интересно, нужно ли этовключите эти файлы в мой установщик.Они не предустановлены с более новыми версиями Windows?Если нет, то вы просто распространяете эти 5 файлов или пользователь загружает пакет vcredist_x86.exe?

Кроме того, в руководстве по элементу управления ActiveX говорится об установке файлов в системную папку Windows.Я ненавижу это.Разве это не нормально, просто установить их в мою папку?Я бы предположил, что Windows будет сначала искать локальный путь для файлов?

1 Ответ

0 голосов
/ 27 июня 2010

У меня нет опыта написания элементов управления ActiveX, но для обычных исполняемых файлов библиотеки DLL могут быть помещены в ту же папку, что и исполняемый файл, при условии, что вы используете версию Visual Studio до VS2005.

Начиная с VS2005, библиотеки DLL времени выполнения (C / C ++ runtime, MFC, ATL) должны быть установлены в параллельном кэше Windows (C: \ Windows \ WinSxS) с использованием установщика, который устанавливается вместе Visual Studio. Также есть возможность использовать приватную сборку. Это означает, что вы не устанавливаете библиотеки DLL в кеше Side-by-Side, но вы должны устанавливать их в подпапках папки, где установлен ваш исполняемый файл.

Наконец, вы также можете выбрать статическую связь с MFC. Тогда больше не нужно распространять или устанавливать MFC DLL.

РЕДАКТИРОВАТЬ: См. http://msdn.microsoft.com/en-us/library/aa376307%28VS.85%29.aspx для объяснения глобальных / общедоступных и отдельных приложений / частных сборок. Вы, вероятно, хотите исследовать сборки для каждого приложения.

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