1

我使用 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

我在两台 DID 工作的机器上试过,它们是

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

谁能给我一些关于这个问题的见解谢谢

4

5 回答 5

0

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

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

于 2010-01-19T08:03:53.507 回答
0

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

于 2010-01-19T08:04:30.873 回答
0

也许使用

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

和一个相对路径(?)

于 2010-01-19T08:06:04.070 回答
0

确保将整个 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);
        }
    }
于 2010-03-16T16:53:20.463 回答
0

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

于 2010-03-16T16:58:42.427 回答