我使用C++和Visual Studio 2008开发了一个64位的dll和我想要将其注册使用“regsvr32.exe的”在目标机器上。我检查清单文件,它明确指出需要什么版本的CRT的:VC++ CRT的Redist问题
<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专业版64位。我试图安装相应的VC++可再发行组件包(VC++ 2008的Redist x86和x64),创建一个安装程序,包括相应的合并模块(microsoft_vc90_crt_x86_x64.msm),安装所有VC++可再发行组件包等。无论已安装它总是会失败。
如果我检查依赖文件,它们正确位于WinSxS文件夹内,但是如果我在文件上运行Dependency Walker,它也会抱怨从VC9 CRT找不到文件。
如果我建立这将在32位操作系统上正确注册为32位的文件。我正在用尽所有的帮助,非常感激。
谢谢,
阿德里安。
编辑 *这是可复制的只有在Win XP 64,所有在Windows 7 64位正常工作。
这应该工作,记录您的问题更好。复制并粘贴* exact *事件日志消息,记录正在使用的* exact * merge模块。 – 2010-09-27 13:51:04