如果我的程序从未涉及System.IO,为什么用户会收到错误信息?

3

我有一个编程程序,它没有一次引用System.I0,使用的是vb.net编写的,但是我的用户却遇到了这个问题:

Description:
  Stopped working

Problem signature:
  Problem Event Name:   CLR20r3
  Problem Signature 01: advancedclipboard.exe
  Problem Signature 02: 1.0.0.0
  Problem Signature 03: 4a903bf5
  Problem Signature 04: Microsoft.VisualBasic
  Problem Signature 05: 8.0.0.0
  Problem Signature 06: 4889f422
  Problem Signature 07: 6e
  Problem Signature 08: 8
  Problem Signature 09: System.IO.FileNotFoundException
  OS Version:   6.0.6000.2.0.0.768.3
  Locale ID:    1033

在程序启动后的崩溃报告中。

我正在使用来自componentfactory.com的Krypton Toolkit和http://ntcore.com/phoenix.php的混淆器。

用户正在运行Vista,并且我不知道他们是否安装了.net框架。

我认为可能发生了以下任何一种情况:

  • 缺少安装 .net 框架导致了崩溃
  • Krypton 工具包需要我将一个.dll文件与其捆绑(不太可能)
  • 混淆器混淆了我的代码并破坏了它

这些情况中最有可能导致程序崩溃的是哪一个?


1
我会说Krypton肯定使用System.IO。 - arul
我认为我已经找到了问题的原因,很可能是Krypton引起的。我需要打包哪些.dll文件? - Cyclone
3个回答

3
如果这个日志来自用户的机器,那么它已经安装了 .Net Framework。否则,就不会抛出 FileNotFoundException。 可能是第三方组件试图找到一个文件,也可能是您的代码间接地通过 .Net Framework 的代码尝试。序列化可以做到这一点。

可能的情况是他们使用的框架版本与您编译应用程序时使用的版本不同。 - Alfred Myers
我该如何使用我的脚本来检查他们使用的是哪一个? - Cyclone

3
您需要在您的应用程序中包含 ComponentFactory.Krypton.Toolkit.dll

用户的计算机上应该放在哪里? - Cyclone
在应用程序的同一文件夹中。如果.dll文件位于系统路径中的某个文件夹中,则可能会起作用。 - aphoria

2

这个错误提示是说找不到advancedclipboard.exe文件。

你知道在你的代码或者你使用的工具包中,是否需要这个文件吗?

编辑:

请忽略我的糊涂时刻...注释已经解释了一切。 :)


不对。是它自己引发了崩溃。advancedclipboard或其依赖项正在尝试查找另一个文件。 - Alfred Myers
他们正在运行 advancedclipboard.exe,没有其他的东西。没有任何东西需要它,它就是程序。 - Cyclone
哈哈 ;) 我讨厌这种事情发生在我身上! - Cyclone

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接