我有一个.net应用程序,它使用一些vc编译的Win32 dll.它在32位Win上工作得很好,但在64位上存在一个问题:“无法加载DLL’xyz’:找不到指定的模块.(HRESULT异常:0x8007007E)”
使用依赖walker我发现它错过了以下dll:MSVCP100.DLL,MSVCR100.DLL,GDIPLUS.DLL,GPSVC.DLL,IESHims.DLL
如何将它们安装到我的64位Win?我应该把它们放在哪里?我应该注册吗?要么…?
注意,我的项目是为x86平台编译的,它是从Program Files(x86)文件夹作为32位应用程序运行的.我的dll在Visual Studio 2010中通过Visual C编译为Win32.
请注意,由于其他一些原因,我的dll无法获得64版本的任务,所以它不是一个解决方案.
谢谢!
整个过程应该是32位或64位.如果无法以64位编译所有依赖库,则需要以32位运行.NET项目.为此,请创建x86配置(默认为Any cpu)并在此配置中构建.NET项目.
您还需要在目标计算机上安装VC 2010可再发行组件包,具有正确的位数,在您的情况下 – x86.该软件包可以从Microsoft WEB站点下载.
如果您的程序具有安装包,则应将VC可再发行组件作为单个文件或合并模块添加到其中.