我使用 C++ 和 Visual Studio 2008 开发了一个 64 位 dll,并且尝试使用“regsvr32.exe”在目标计算机上注册它。我检查了清单文件,它清楚地说明了需要什么版本的 CRT:
<assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='amd64' publicKeyToken='1fc8b3b9a1e18e3b' />
当我尝试注册该文件时,我总是收到一条并排错误消息,指出应用程序设置不正确,我应该重新安装它。
记录错误:生成激活上下文
失败...参考错误信息:
未安装引用的程序集
在您的系统上。
目标计算机运行 Windows Xp Professional 64 位。我尝试安装相应的 VC++ 可再发行软件包( VC++ 2008 Redist and ),创建一个安装程序并包含相应的合并模块( microsoft_vc90_crt_x86_x64.msm ),安装所有 VC++ 可再发行软件包等。无论安装什么,它总是会失败。
如果我检查依赖文件并且它们正确位于 WinSxS 文件夹内,但如果我在该文件上运行 Dependency Walker,它也会抱怨无法找到 VC9 CRT 中的文件。
如果我构建 32 位文件,它将在 32 位操作系统上正确注册。我已经没有想法了,所以非常感谢任何帮助。
Thanks,
Adrian.
EDIT*这只能在 Win XP 64 上重现,在 Windows 7 64 位上一切正常。
我不是安装程序方面的专家,但您是否考虑过将可再发行组件分发到应用程序的根文件夹中?
至于我,我从来没有听说过使用regsvr32.exe来安装crt redist。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)