VB.NET应用程序在IDE中工作,但在编译并在另一台机器上运行时会抛出错误

时间:2009-11-15 00:32:38

标签: .net vb.net visual-studio build

我在VS2008中使用VB.NET创建了一个应用程序。当我在我的开发机器上的IDE中运行应用程序时,它工作正常。当我构建它并在安装了Visual Studio的任何机器上运行它作为exe时它也可以正常运行(至少2005和2008)但是,当我尝试在没有Visual Studio的任何机器上运行编译的可执行文件时它会抛出错误“[程序名称]遇到问题并将关闭......”

有没有人对此有任何想法。

由于

5 个答案:

答案 0 :(得分:1)

您的GAC中可能存在未安装Visual Studio的计算机上的库。检查您引用的库,并尝试直接将dll添加到项目中。

答案 1 :(得分:1)

我会问一句众所周知的“是插在墙上了吗?”问题:您的目标计算机是否安装了.Net框架? VB.Net程序要求安装.Net框架运行时才能运行。

答案 2 :(得分:0)

您描述的错误消息是某种内存违规。但是,确定问题所在的信息太少了。

要确定问题,请编写“hello world”程序,看看是否可以重现错误。包括所有使用声明。如果仍然失败,我会确保您的目标计算机上可以使用所有必需的库。您可以将它们放在与可执行文件相同的文件夹中以进行测试。

如果可行,您应该开始阻止部分代码以防止它们执行(通过注释掉它们或使用return语句),并尝试重现问题。当问题消失时,您注释掉的最后一段代码就是带有错误的代码。

答案 3 :(得分:0)

您可以在未安装VS的PC上的EXE上运行reflector。它可以告诉您依赖程序集以及是否可以检查是否在该系统上有它们。

答案 4 :(得分:0)

有很多原因导致应用程序崩溃,如

  • 缺少资源/配置文件
  • 目标计算机可能没有必要的.Net framework版本
  • 可以为amd64编译应用程序,并且您尝试在x86计算机上运行它
  • 您的应用无权执行某些操作(例如从HKLM读取)并且无法处理

获取实际的错误/异常消息对于弄清楚应用程序崩溃的原因会更有帮助。

尝试添加一个catch-all exception handler,它可以弹出一个警告框,其中包含异常文本/堆栈跟踪或installing windbg作为交互式调试器,并在调试器下捕获转储或运行应用程序。