由于无法访问内存位置,因此无法加载DLL VistaDb20.dll(HRESULT:0x800703E6)

时间:2012-03-07 23:18:55

标签: c# visual-studio-2010 dll assemblies vistadb

我有一个用C#在Visual Studio 2005中构建的项目。我为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 Assembly Registration Utility 2.0.50727.4927来regasm VistaDb20.dll /tlb:VistaDb20.tlb并收到错误:

RegAsm:错误RA0000:无法加载“VistaDb20.dll”,因为它不是有效的.NET程序集。

我不确定如何使用此.dll问题在Windows 7上运行我的应用程序。任何帮助,将不胜感激。此应用程序和数据库是使用VistaDB 2.1

创建的

我想我无法更改实际的dll因为我没有创建它但是我可能需要在Visual Studio中更改dll的某些属性?

2 个答案:

答案 0 :(得分:1)

根据this,您的问题是此DLL与DEP不兼容。你需要禁用DEP来解决这个问题,但从长远来看,你应该试着让自己摆脱这种特殊的依赖。

答案 1 :(得分:1)

尝试使用RegAsm命令注册我的VB .NET程序集时遇到此错误:

  

RegAsm:错误RA0000:无法加载“VistaDb20.dll”,因为它不是有效的.NET程序集。

我解决了问题,购买执行正确.NET Framework的RegAsm。

我的意思是你应该使用你在高级编译选项(VS2010)中作为目标的相同框架的工具。