C#应用程序没有';我不能在其他电脑上工作

本文关键字:不能 其他 电脑 工作 应用程序 | 更新日期: 2024-10-20 09:38:43

为什么我用C#编译的应用程序在其他计算机上不工作?

我有。Net Framework 4.0已安装。

当我在另一台计算机上打开.exe时,我会收到错误:

ERROR SIGNATURE:
    Event Type: clr20r3  
    P1:         myapp.exe 
    P2:         1.0.0.0
    P3:         502051f 
    P4:         myapp 
    P5:         1.0.0.0 
    P6:         502051f 
    P7:         2 
    P8:         6 
    P9:         System.IO.FileNotFoundException

C#应用程序没有';我不能在其他电脑上工作

system.io.filenotfoundexception通常意味着您的程序试图打开一个不存在的文件。您的程序可能正在尝试使用不存在的路径或文件名访问某些文件,或者该路径或文件名将位于其他计算机上的其他位置。如果不知道myapp.exe应该做什么,我就无法再回答了。

你的解决方案可能是重新编写你的应用程序,以便它以某种方式更好地处理该异常,例如在尝试打开文件之前检查文件的存在。

这听起来像是缺少引用的情况。从解决方案资源管理器检查您的引用,或进入bin/debug或bin/release(取决于您的配置),并确保复制您的项目依赖于的所有dll或exe

应用程序很可能正在尝试加载程序集,但在中找不到它

有点脱离主题,但理想情况下,对于任何希望添加一些"未处理"异常处理以写入日志文件或事件日志的应用程序,这样您就可以捕获更多的异常堆栈。

通常你只得到最后一条异常消息,也看不到调用堆栈

你可以很容易地使用这样的东西来汇总异常:

string RollupException(Exception ex)
{
    StringBuilder sb = new StringBuilder();
    sb.Append(ex.Message);
    while(ex.InnerException != null) 
    {
         sb.Append(Environment.Newline);
         sb.Append(ex.Message);
         ex = ex.InnerException;
    }
    return sb.ToString();
}

您也可以使用EventLog类来写入事件日志。

此处信息:

http://msdn.microsoft.com/en-us/library/system.diagnostics.eventlog.aspx

查看示例-记得先注册一个事件源!

看起来你的程序缺少一个DLL(或者DLL放错地方了):

http://social.msdn.microsoft.com/Forums/pl-PL/clr/thread/782217a8-46bd-4371-9915-28655d9b2c2f

正在解密。NET clr20r3异常参数P1.P10

解决这个问题的一个简单方法是创建一个安装项目,然后将项目的依赖项捆绑到一个安装文件中。不过,如果您使用Visual Studio速成版,我认为该选项不可用。

http://www.dreamincode.net/forums/topic/58021-deploying-a-c%23-应用程序visual studio设置项目/

如果你很确定这是一个缺失的.net框架,下面的工具会向你展示你的机器/你的客户端上有什么,这样你就可以找出缺失的东西:

http://www.asoft.be/prod_netver.html

希望能有所帮助。

我遇到了完全相同的问题,和Joao一样,最终发现这是由Windows窗体LineShape引起的。这添加了Microsoft。VisualBasic。PowerPacks对您的项目的引用。当你在一个没有安装PowerPacks的系统上运行它时,你只会得到一个毫无帮助的系统。IO.FileNotFoundException错误,没有关于丢失哪个文件的线索。

是的,我知道如果你麻烦地进行正确的分发设置,这会提示用户安装。。。,等等。但我只想能够简单地将我的EXE复制到另一个系统。

要解决:从表单中删除任何LineShapes,然后删除对VisualBasic和VisualBasic的引用。您的参考资料中的PowerPacks。

David

[使用VS2008 SP]

相关文章: