我有一个在Visual Studio 2005中用C#构建的项目。我为Windows应用程序创建了一个安装程序(在VS2010中),它在Windows XP SP3上安装并运行良好。我尝试在Windows 7 32位上安装它,它说安装成功,但当我尝试打开应用程序时,我收到了以下错误消息:
发生致命错误。无法加载DLL"VistaDb20.DLL":无效访问内存位置。(HRESULT:0x800703E6中的异常)
人们建议我在命令行中运行:regsvr32 VistaDb20.dll
我收到错误消息:
模块"VistaDb20.dll"已加载,但找不到入口点DllRegisterServer。确保"VistaDb20.dll"是有效的dll或OCX文件,然后重试
因此,我使用.NET Framework程序集注册实用程序2.0.50727.4927尝试了regasm-VistaDb20.dll/tlb:VistaDb20.4lb,并得到错误:
RegAsm:错误RA0000:未能加载"VistaDb20.dll",因为它不是有效的.NET程序集
我不知道如何让我的应用程序在Windows 7上运行这个.dll问题。如有任何帮助,我们将不胜感激。该应用程序和数据库是使用VistaDB 2.1 创建的
我想我无法更改实际的dll,因为我没有创建它,但也许我必须在Visual Studio中更改dll的一些属性?
我在尝试使用RegAsm命令注册VB.NET程序集时出现此错误:
RegAsm:错误RA0000:未能加载"VistaDb20.dll",因为它不是有效的.NET程序集。
我通过执行正确的.NET Framework的RegAsm解决了这个问题。
我的意思是,您应该使用与您在高级编译选项(VS2010)中作为目标的框架相同的工具。
根据这一点,您的问题是此DLL与DEP不兼容。您需要禁用DEP来解决此问题,但从长远来看,您应该尝试摆脱这种特定的依赖关系。