1

我有一个用 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 程序集注册实用程序 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 的某些属性?

4

2 回答 2

1

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

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

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

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

于 2012-08-09T17:00:28.843 回答
1

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

于 2012-03-08T18:48:37.150 回答