【问题标题】:my windows forms application throws filenotfoundexception when run on another machine我的 Windows 窗体应用程序在另一台机器上运行时抛出 filenotfoundexception
【发布时间】:2010-01-19 07:58:28
【问题描述】:

我使用 vs2008 创建了一个 windows 窗体应用程序。当我将 bin 文件夹复制到另一台机器并尝试运行它时,应用程序会引发 filenotfoundexception 错误。我查看了项目中使用的参考文件,每个文件都指向

  • c:\Windows\Microsoft.NET\Framework\v2.0.50727...
  • c:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5...
  • c:\Program Files\Common Files\Microsoft Shared\Visual Basic Power Packs\1.1...

我已验证这些目录存在于导致错误的其他计算机上。 我尝试过的两台机器会出现错误

未安装 VS2008 的 Windows XP 和 安装了 VS2008 的 Windows 7

我在两台可以正常工作的机器上试过

带有 VS2008 的 Windows XP 和 和我的开发机器Windows 7 VS2008

谁能提供一些关于这个问题的见解 谢谢

【问题讨论】:

  • FileNotFoundException 的文字说什么是丢失的文件?
  • 您是从调试版还是发布版复制的文件?

标签: .net filenotfoundexception


【解决方案1】:

如果您注册了所有全局程序集,那么如果您正在读取/打开某个带有引发异常的绝对路径的文件,请检查您的代码。

假设您有一个正在打开的文件 c:\abc.txt。该文件可能在开发人员机器上可用,但在其他测试机器上不可用。您可能需要检查程序中的 File.Open 函数调用。

【讨论】:

    【解决方案2】:

    未找到哪个文件,尝试捕获异常并记录未找到哪个文件的异常详细信息。 您还说安装 VS2008,该应用程序可以运行,然后尝试安装 VS2008 可再发行运行时库。 webbrowser和其他api需要它。

    【讨论】:

      【解决方案3】:

      也许用

      Dim rootPath As String = Server.MapPath("~")

      和一个相对路径(?)

      【讨论】:

        【解决方案4】:

        使用来自 sysinternals 的进程监视器 - 这将让您看到您的应用试图打开哪些文件

        【讨论】:

          【解决方案5】:

          确保将整个 Main 函数的内容封装在 try catch() 中。然后您可以显示消息以找出缺少的程序集。完成此操作后,转到引用中的该程序集,并在其属性中设置 CopyLocal = true。

          例如:

                  [STAThread]
              static void Main()
              {
                  try
                  {
                      Application.EnableVisualStyles();
                      Application.SetCompatibleTextRenderingDefault(false);
                      Application.Run(new MyForm());
                  }
                  catch (Exception ex)
                  {
                      MessageBox.Show(ex.Message);
                  }
              }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-08-03
            • 2016-01-19
            • 2019-10-26
            • 2018-04-21
            • 2023-04-04
            • 2017-09-10
            相关资源
            最近更新 更多