У меня есть проект ATL / WTL, разработанный с использованием Visual Studio 2008, и до сих пор я статически связывался с библиотеками CRT, избегая необходимости их доставки. Однако теперь мне нужно рассмотреть возможность использования динамических библиотек (DLL) вместо этого - чтобы уменьшить размер кода и потому что я хочу использовать превосходный инструмент crashrpt (который требует динамической связи с CRT .)
Теперь MS поставляет как автономный установщик (vcredist_x86.exe), так и пакет MSM, но это мне не подходит по двум причинам:
- Я не использую установщик на основе MSI (я использую InnoSetup).
- Мое приложение устанавливается с ограниченной учетной записью пользователя, и установщик vcredist_x86.exe не будет работать.
Поэтому я хочу отправить библиотеки CRT и установить их в папку с приложениями. Теперь это то, что вы можете сделать, когда я нашел следующий пост в блоге Мартина Ловелла, ведущего разработчика библиотек MSVC, в котором говорится:
Однако, если вы хотите
установить-applocal, вы должны убедиться,
что ваше приложение имеет манифест,
а затем скопировать всю эту папку
в вашу директорию EXE:
X: \ Program Files \ Microsoft Visual
студия
8 \ VC \ redist \ x86 \ Microsoft.VC80.CRT
и другие папки, если вы используете более
ЭЛТ. Убедитесь, что вы включили
манифест.
Просто хочу, чтобы я пришел - кроме как, я не понимаю эту часть:
убедитесь, что у вашего приложения есть манифест
Мой вопрос - как мне создать манифест приложения, который ссылается на библиотеки CRT DLL, которые я хочу использовать? Единственная информация о манифесте, которую используют мои проекты в настоящее время, - это следующее (что гарантирует, что приложение использует v6 Общих элементов управления):
/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"
Может ли кто-нибудь дать мне инструкции о том, как работать с магией манифеста в Visual Studio 2008? В моей папке Visual Studio VC \ redist \ x86 \ Microsoft.VC90.CRT есть файл Microsoft.VC90.CRT.manifest - нужно ли это как-то использовать?
Примечание: этот вопрос похож на этот .