C#应用程序不';我不能在其他计算机上工作
为什么我用C#编译的应用程序不能在其他计算机上运行 我已经安装了.Net Framework 4.0 当我在另一台计算机上打开我的C#应用程序不';我不能在其他计算机上工作,c#,ioexception,C#,Ioexception,为什么我用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
.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
system.io.filenotfoundexception
通常意味着您的程序试图打开一个不存在的文件。很可能您的程序正在尝试使用不存在的路径或文件名访问某些文件,或者该路径或文件名位于其他计算机上的其他位置。由于不知道myapp.exe应该做什么,我无法进一步回答
您的解决方案可能是重新编写应用程序,以便它以某种方式更好地处理该异常,例如在尝试打开文件之前检查文件是否存在。A
system.io.filenotfoundexception
通常意味着您的程序试图打开一个不存在的文件。很可能您的程序正在尝试使用不存在的路径或文件名访问某些文件,或者该路径或文件名位于其他计算机上的其他位置。由于不知道myapp.exe应该做什么,我无法进一步回答
您的解决方案可能是重新编写应用程序,以便它在某种程度上更好地处理该异常,例如在尝试打开该文件之前检查该文件是否存在。我觉得这就像是缺少引用的情况。检查解决方案资源管理器中的引用,或进入bin/debug或bin/release(取决于您的配置),并确保复制项目所依赖的所有DLL或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
类写入事件日志
此处的信息:
查看示例-记住首先注册事件源 应用程序很可能正在尝试加载程序集,但找不到该程序集 有点离题,但理想情况下,对于任何希望添加一些“未处理”异常处理以写入日志文件或事件日志的应用程序,以便可以捕获更多的异常堆栈 通常,您只会收到最后一条异常消息,也看不到调用堆栈 您可以使用以下方法非常轻松地汇总异常:
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
类写入事件日志
此处的信息:
查看示例-记住首先注册事件源 您的程序似乎缺少DLL(或DLL被放错了位置): 解决这个问题的一个简单方法是创建一个安装项目,然后将项目的依赖项捆绑到一个安装文件中。我认为如果您使用的是Visual Studio Express edition,则该选项不可用 如果您非常确定缺少的是.net framework,则以下工具将向您显示您的计算机/客户端上的内容,以便您可以找出缺少的内容:
希望对您有所帮助。看起来您的程序缺少DLL(或者DLL被放错了位置): 解决这个问题的一个简单方法是创建一个安装项目,然后将项目的依赖项捆绑到一个安装文件中。我认为如果您使用的是Visual Studio Express edition,则该选项不可用 如果您非常确定缺少的是.net framework,则以下工具将向您显示您的计算机/客户端上的内容,以便您可以找出缺少的内容:
希望能有所帮助。我也遇到了同样的问题,就像Joao最终发现的一样,这是由Windows窗体的线条形状造成的。这会将Microsoft.VisualBasic.PowerPacks引用添加到您的项目中。当您在没有安装PowerPacks的系统上运行它时,您只会得到一个毫无帮助的system.IO.FileNotFoundException错误,而不知道丢失了哪个文件 是的,我知道这应该得到解决,如果你去做一个适当的发行设置,这将提示用户安装…等麻烦,但我只想能够简单地复制我的EXE到另一个系统 解决方法:从窗体中删除任何线型,然后删除引用中对VisualBasic和VisualBasic.PowerPacks的引用 大卫
[使用VS2008 SP]我遇到了完全相同的问题,像Joao一样,我最终发现它是由Windows窗体线型引起的。这会将Microsoft.VisualBasic.PowerPacks引用添加到您的项目中。当您在没有安装PowerPacks的系统上运行它时,您只会得到一个毫无帮助的system.IO.FileNotFoundException错误,而不知道丢失了哪个文件 是的,我知道这应该得到解决,如果你去做一个适当的发行设置,这将提示用户安装…等麻烦,但我只想能够简单地复制我的EXE到另一个系统 解决方法:从窗体中删除任何线型,然后删除引用中对VisualBasic和VisualBasic.PowerPacks的引用 大卫
[使用VS2008 SP]没错。似乎缺少一个dll。我会尽力找出问题的,谢谢。没错。似乎缺少一个dll。我会尽力找出问题的,谢谢。只是想让大家知道,错误是因为我使用了Lin