1

我的 VB.NET 应用程序在开发 PC 上编译、安装和工作正常。

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

错误是“遇到问题需要关闭...”

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

我只有一个本地 dll,参考似乎还可以。

还有哪些其他问题可能导致此问题?

谢谢!乔恩

更新:在 1 台 PC 上,重新安装 MDAC 已解决该问题。然而,大多数客户端都是 XP,所以这无济于事。

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

4

9 回答 9

2

很抱歉问一个明显的问题,但是目标 PC 是否安装了 .Net Runtime?

于 2009-01-14T15:36:40.973 回答
2

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

于 2009-01-14T15:38:49.910 回答
2

我以前用无效的 app.config 文件看到过这种情况。鉴于您刚刚发布的错误,您也可以检查机器的清单文件。

于 2009-01-14T15:56:46.783 回答
2

两种可能:

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

dim iClass as new myClass

在启动窗体或模块的全局区域(在子或函数之前)中,如果在创建实例 iClass 期间发生错误,那么您会收到一条相当无价值的错误消息,但不知道在哪里找到问题。

如果在初始化期间发生的控制事件的虚假触发导致 _load 开始执行之前事件处理程序中出现错误,您也可能会收到此类错误。根据 Microsoft 的说法,此事件触发偶尔会发生,“设计使然”。这可以通过在 _load 执行后切换的标志来防止,以告诉处理程序它是否可以安全运行,并且可能通过明智地使用设计时分配的控件属性。

于 2009-07-28T04:43:25.287 回答
1

好的 - 事件查看器有帮助。我认为。

看起来在安装过程中没有找到一些参考。


这是最后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. 
于 2009-01-14T15:47:22.327 回答
0

您的目标是不是安装在其他机器上的更高版本的 .NET 平台?
您可以在编译选项卡的“我的项目”中检查您的项目(VS.2008)的目标框架。单击 Advanced Compile Options...
在 Advanced Compiler Setting 对话框的底部,每个框架都会有一个下拉列表。
在客户端计算机上,您可以在“程序和功能”控制面板 (Vista) 或 XP 中的“添加和删除程序”中检查 .NET 版本

于 2009-01-14T16:07:45.297 回答
0

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

于 2009-01-22T16:54:23.330 回答
0

有一些 3rd 方 DLL 的行为很奇怪。试试这个,在您的部署中,将它们更改为包含而不是自动包含。

于 2009-07-28T15:22:23.087 回答
0

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

于 2019-01-04T02:32:25.743 回答