代码之家  ›  专栏  ›  技术社区  ›  Jon Winstanley

什么会导致VB.NET应用程序在运行任何代码之前崩溃?

  •  1
  • Jon Winstanley  · 技术社区  · 16 年前

    我的vb.net应用程序在开发PC上编译、安装并运行良好。

    但是,当我将安装包带到其他地方时,它安装正常,但在执行任何代码之前崩溃。

    错误为“遇到问题,需要关闭…”

    我已经删除了对外部文件的所有引用,例如图标文件等。

    我只有一个本地dll,引用似乎正常。

    还有什么其他问题会导致这个问题?

    谢谢! 乔恩

    更新:在1台电脑上,重新安装mdac解决了这个问题。然而,大多数客户机都是XP,所以这不会有帮助。

    在某些Windows XP笔记本电脑上,我仍然收到相同的错误。

    9 回复  |  直到 6 年前
        1
  •  2
  •   GvS    16 年前

    您可以在事件日志(从运行框中的“eventvwr”开始)中查看更多信息。

        2
  •  2
  •   Stu Mackellar    16 年前

    很抱歉问清楚,但是目标PC是否安装了.NET运行时?

        3
  •  2
  •   Joel Coehoorn    16 年前

    我以前看到过一个无效的app.config文件。考虑到您刚刚发布的错误,您也可以检查机器的清单文件。

        4
  •  2
  •   xpda    15 年前

    两种可能性:

    这是在初始化期间,当vb.net遇到错误时所得到的错误类型。例如,如果你有

    dim iClass as new myClass
    

    在启动窗体或模块的全局区域(在subs或函数之前),如果在创建实例iclass期间发生错误,那么您将得到一条相当无用的错误消息,而不知道从何处找到问题。

    如果在初始化过程中发生的控件事件的虚假触发导致事件处理程序在加载开始执行之前发生错误,也可以获得这种类型的错误。根据微软的说法,这种事件偶尔会发生。这可以通过使用一个标志来防止,该标志在执行加载之后被切换以告诉处理程序运行是否安全,并且可能通过明智地使用设计时分配的控件属性来防止。

        5
  •  1
  •   Jon Winstanley    16 年前

    好的-事件查看器帮助了。我想。

    似乎在安装过程中找不到某些引用。


    以下是最后6项…

    Faulting application pa.exe, version 2.0.1.26594, stamp 496e0437, faulting module kernel32.dll, version 5.0.2195.6946, stamp 40d78cce, debug? 0, fault address 0x0002bbf3. 
    
    Detection of product '{3CA9D9FD-E8CD-4B73-8053-8C406ED8CB28}', feature 'DefaultFeature' failed during request for component '{ACA3C479-D7C7-902C-092A-E6635AD9A8B1}' 
    
    Detection of product '{3CA9D9FD-E8CD-4B73-8053-8C406ED8CB28}', feature 'DefaultFeature', component '{7D04E12E-2803-6F47-E11C-B8146C27E61B}' failed.  The resource 'C:\Program Files\pa\pa-update.exe' does not exist. 
    
    Faulting application pa.exe, version 2.0.1.26594, stamp 496dffb9, faulting module kernel32.dll, version 5.0.2195.6946, stamp 40d78cce, debug? 0, fault address 0x0002bbf3. 
    
    Detection of product '{3CA9D9FD-E8CD-4B73-8053-8C406ED8CB28}', feature 'DefaultFeature' failed during request for component '{ACA3C479-D7C7-902C-092A-E6635AD9A8B1}' 
    
    Detection of product '{3CA9D9FD-E8CD-4B73-8053-8C406ED8CB28}', feature 'DefaultFeature', component '{30A51F7D-D0DA-E436-F48F-1092ECE7858D}' failed.  The resource 'C:\Program Files\pa\pa-common.dll' does not exist. 
    
        6
  •  0
  •   Tom Willwerth    16 年前

    您是否可以将.NET平台的目标设置为比其他计算机上安装的版本更高的版本?
    您可以在complile选项卡的“我的项目”中检查项目的目标框架(与2008年相比)。单击高级编译选项…
    在高级编译器设置对话框的底部,每个框架都有一个下拉列表。
    在客户端计算机上,您可以在“程序和功能”控制面板(Vista)或XP中的“添加和删除程序”中检查.NET版本。

        7
  •  0
  •   Toby Allen mercator    16 年前

    我不知道.NET,但在Delphi中,您可以使用一个IDE实例来调试第二个实例。然后,要在启动时调试问题(在正确的调试开始之前),可以将IDE A附加到IDE B进行调试,然后在IDE B中运行应用程序,您在IDE A中打开的代码可能会给您一些关于问题的线索。

        8
  •  0
  •   Brian Spencer    15 年前

    有些第三方的DLL行为异常。尝试这样做,在部署中,将它们更改为include而不是auto include。

        9
  •  0
  •   Eric Moon    6 年前

    我今天遇到了这种事。我的错误是我从另一个程序中复制了该程序,并进行了修改以满足我的要求。问题是,当一个程序启动时,第二个程序将崩溃而不会出现任何错误。我发现我需要更改程序集信息。我更改了应用程序名、程序集标题,并创建了唯一的GUID。一旦我做到了,我就可以同时运行这两个程序。