在 Parallels 8 中的 Windows 7 上运行 C# Windows Forms 应用程序错误

Posted

技术标签:

【中文标题】在 Parallels 8 中的 Windows 7 上运行 C# Windows Forms 应用程序错误【英文标题】:Running a C# Windows Forms application on Windows 7 in Parallels 8 error 【发布时间】:2013-03-11 09:26:04 【问题描述】:

我编写了一个非常简单的C#Windows Forms 应用程序,一位同事想在Windows 7 上使用Parallels 8 对其进行测试,因为他只有一台Mac。

问题是,当他使用调试文件夹中的 EXE 文件启动它时,他得到了这个错误:

启动 OMAPI 时出错(无法加载 DLL 'libomapi.dll':找不到指定的模块。(来自 HRESULT 的异常:0x8007007E))检查所需的 .dll 文件是否存在正确的版本:OmApiNet.dll libomapi。 dll

从下图可以看出,所需的 DLL 文件就在同一个文件夹中,如果他将此调试文件夹带到 Windows PC 上它工作正常,所以它肯定是某种虚拟机或 Parallels-具体问题。

我该如何解决这个问题?

我没有真正使用足够多的虚拟机来知道问题可能是什么......

【问题讨论】:

可执行文件与库的格式是什么?鉴于它在同一个文件夹中,它应该可以找到它,所以我想知道这是否真的是一个糟糕的格式问题(32 位与 64 位)? 您可能还会发现这是一个外部依赖问题,您的并行设置中不存在与您的其他设置相同的内容,请尝试使用 Dependency Walker - dependencywalker.com 我看到如果项目是为 AnyCPU 编译但依赖库是 x86 而目标操作系统是 x64 时会发生一些有趣的事情。 确保您的所有依赖 DLL 和您的应用程序都使用相同的处理器架构(x86 或 x64)构建。远离 AnyCPU 与虚拟机。 (抱歉,回复晚了)啊,好吧,我会问他他的 Parallels 设置是什么,我会用 x86/x64 而不是 AnyCPU 重新编译并报告。感谢大家迄今为止的帮助。 【参考方案1】:

看起来您试图从网络共享运行应用程序,.NET 平台禁止在其中运行应用程序,因为它存在安全风险。尝试将文件复制到虚拟机上的其他位置,例如 C:\Temp。

【讨论】:

【参考方案2】:

这可能更多是网络驱动器问题。让他将该文件夹从 Y: 驱动器(从他的 Mac 共享)复制到 C: 驱动器并从那里再次运行。

【讨论】:

【参考方案3】:

在其上运行ProcMon 并查看它在尝试查找文件时真正做了什么会很有趣。

【讨论】:

以上是关于在 Parallels 8 中的 Windows 7 上运行 C# Windows Forms 应用程序错误的主要内容,如果未能解决你的问题,请参考以下文章

Parallels 将扩展桌面平台产品,以进一步改善在 Mac 上运行 Windows 的用户体验和工作效率

如何在Parallels Desktop中安装Windows 10虚拟机

MAC中Parallels Desktop windows忘记密码的解决办法

在 Mac 上的 Parallels/Windows10 中使用 Visual Studio 2019 找不到参考

Parallels 发布 Desktop 17版本,支持 Windows 11 和 macOS Monterey

从 Mac 访问 Parallels Windows localhost [关闭]