我有一个用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的某些属性?
答案 0 :(得分:1)
根据this,您的问题是此DLL与DEP不兼容。你需要禁用DEP来解决这个问题,但从长远来看,你应该试着让自己摆脱这种特殊的依赖。
答案 1 :(得分:1)
尝试使用RegAsm命令注册我的VB .NET程序集时遇到此错误:
RegAsm:错误RA0000:无法加载“VistaDb20.dll”,因为它不是有效的.NET程序集。
我解决了问题,购买执行正确.NET Framework的RegAsm。
我的意思是你应该使用你在高级编译选项(VS2010)中作为目标的相同框架的工具。