【问题标题】:Vb.Net win forms application not running on all computersVb.Net win表单应用程序未在所有计算机上运行
【发布时间】:2013-04-19 17:36:01
【问题描述】:

我在 VB 中编写了一个需要一些外部 DLL 的 win forms 应用程序,它可以在多台机器上完美地安装和运行,但它不能在一台笔记本电脑上运行!我什至让 Filestreams 将异常写入文本文件。虽然它将预期的标题文本写入其他计算机上的调试文件,但它不会向上述笔记本电脑上的调试文件写入任何内容。我的猜测是它甚至没有达到 Form1_Load() 方法。

这是程序的结构:

Import namespaces from external programs

Public Class MyApp

''Varibale declarations:

Structures and classes based on DLLs
Other declarations based on .Net Objects
Stream writer declaration and initialization for the debug file

Private Sub Form1_Load(...)

Try
    Write Start and time to the debug file

    execute commands
catch
    write debug info
end Try

End Sub

Other events and subs

End Class

有没有办法查看调试文件的初始化和 Form1_Load() 的执行之间发生了什么??

正如我所说,它在所有使用它的机器上都能完美运行,除了一台! 在那台机器上我需要检查什么?

【问题讨论】:

  • 当你在你的开发机器上调试应用程序时(它在那里工作对吗?)你可以按照 Form_Load 的路径检查是否在 Form_Load 之前初始化了某些东西。使用分步功能(通常是 F11,但在您的环境中可能会有所不同)
  • 确保笔记本电脑安装了所需的 .NET 框架。
  • 感谢 Jack,它确实安装了所需的 .Net 框架,实际上它已包含在附加组件中。
  • @Steve,非常感谢你,那个 F11 提示很棒,它将来会派上用场,但在我到达 Form1_Load() 之前,只加载了一些无法访问的函数。跨度>
  • 我想我已经找到问题所在了!尽管我已将 .dll 添加到引用列表中,并且它们包含在二进制文件夹和安装包文件中,但它们之间的链接无法正常工作!我删除了与包相关的 gui 内容,应用程序现在正在运行!它只给了我一个 InvalidOperationException 似乎与This problem discussed here

标签: vb.net winforms deployment installation


【解决方案1】:

很可能笔记本电脑的用户不在管理员组中,而您正在尝试写入应用程序文件夹。

【讨论】:

  • 谢谢比喻,但用户是管理员。应用程序文件夹已创建,即使我双击该应用程序,它也会创建我的小调试文件(但不会向其中写入任何内容,这是 form1_load() 中的第一个命令)。笔记本电脑工作一分钟,然后什么也没有发生!有没有办法把 appdoamin.unhandledException 放到 winform 程序中?
【解决方案2】:

您是否尝试在初始化后立即在调试文件中添加占位符行,以检查该文件是否实际可写?

Form 的构造函数是否可达?如果将“Write Start and time to the debug file”代码移到构造函数中,它会写什么吗?

【讨论】:

    猜你喜欢
    • 2012-01-29
    • 1970-01-01
    • 2020-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-07
    • 1970-01-01
    相关资源
    最近更新 更多