0

我来找你是因为我很绝望。我使用最新的 MonoDevelop 在 C# 中开发了一个 GTK# 应用程序。它是为 .NET 框架 4.0 / x86 构建的,它使用的唯一外部库是官方的 Mysql .Net 连接器。它旨在在 Windows XP 下运行。

这是我用这个 IDE 制作的第一个应用程序。我对结果和开发时间非常满意,但部署确实令人头疼。

它在开发机器上完美运行。调试很干净。一切都好。

然后,由于找不到有关部署的任何信息,我安装了一个干净的 XP 来尝试它,看看我应该在客户端机器上安装什么。

我已经安装了 SP3、.NET 4.0 并使用构建日志中提到的所有 DLL 复制了发布包(这使它在开发机器中的 MonoDevelop 之外工作)。但是我得到一个“应用程序遇到问题需要关闭”的错误,在 kernel32.dll 中,偏移 0012aeb 无一例外。

我尝试在 4.0 之前安装 .NET 3.5,更新了 IE(以防万一……),将更多 GTK# 和 Monodevelop DLL 复制到 exe 的文件夹中,安装了 Mysql .NET 连接器,安装了 Mono 2.8……但什么都没有。仍然得到那个无法解释的错误。

Google 和 StackOverflow 搜索对我没有帮助。在过去的 12 个小时或更长时间里,我在没有离开这台机器的情况下研究并尝试了很多东西。

你有什么建议吗?可能是什么原因造成的?有什么方法可以调试exe(不安装VS ...)?有谁知道这种可执行文件的所有依赖项是什么?

4

3 回答 3

1

WinDbg 可以帮助您解决一些 JIT 问题...

即使它不是直观的并且需要技能,也值得一试。可能会弹出一些东西。

于 2012-04-30T05:48:16.350 回答
0

在生产机器上安装 Visual Studio 有多种选择,其中之一是Remote Debugging Monitor。它不需要安装 Visual Studio。您可以将文件从开发机器复制到服务器。我把它们放在下面了C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger

您还可以将它用于本地构建项目的远程调试

于 2012-04-30T05:58:38.473 回答
0

如果它打算在 Windows 下运行,那么您可能应该使用 Visual C# 编译器对其进行编译。

但是,与您的问题更相关 - 在您的部署机器中获取一个调试器并在其上运行应用程序。这是找出问题的最佳方法,因为我们真的无法猜测。

Mono 应用程序部署指南

于 2012-04-30T05:50:10.770 回答