Я разработал 64-битную dll с использованием C++ и Visual Studio 2008, и я пытаюсь зарегистрировать ее на целевой машине с помощью «regsvr32.exe». Я проверил файл манифеста и он ясно заявляет, что версия CRT требуется:VC++ CRT Redist problem
<assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='amd64' publicKeyToken='1fc8b3b9a1e18e3b' />
При попытке зарегистрировать файл я всегда получаю сообщение об ошибке бок о бок о том, что параметры программы неверны и что я должен переустановить его.
Log Error: Generate Activation Context failed... Reference error message: The referenced assembly is not installed on your system.
Целевая машина работает под управлением Windows Xp Professional 64 бит. Я попытался установить соответствующий VIS ++ redistributable пакет (VC++ 2008 Redist x86 и x64), создать настройку и включить соответствующий модуль слияния (microsoft_vc90_crt_x86_x64.msm), установить все распространяемые VC++ пакеты и т. Д. Независимо от того, что установлено, он всегда будет терпеть неудачу ,
Если я проверяю зависимые файлы, и они правильно расположены внутри папки WinSxS, но если я запустим Dependency Walker в файле, он также пожалуется, что файлы из VC9 CRT не могут быть найдены.
Если я создам файл для 32 бит, он будет правильно зарегистрирован на 32-битной ОС. У меня заканчиваются идеи, поэтому любая помощь очень ценится.
Thanks,
Adrian.
EDIT * Это воспроизводится только на Win XP 64, все отлично работает на Windows 7 64 бит.
Это должно работать, документируйте вашу проблему лучше. Скопируйте и вставьте * точное сообщение журнала событий, запишите * точный * модуль слияния, который вы используете. –