C# winform程序打包工具 打包之后,安装完之后运行程序提示.netform(好像是,忘记了)错误

c# winform 脱离.netframework运行
[问题点数:20分,结帖人hunniman]
c# winform 脱离.netframework运行
[问题点数:20分,结帖人hunniman]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2012年 总版技术专家分年内排行榜第一
2013年 总版技术专家分年内排行榜第七2011年 总版技术专家分年内排行榜第五2009年 总版技术专家分年内排行榜第九
2016年8月 .NET技术大版内专家分月排行榜第一2016年7月 .NET技术大版内专家分月排行榜第一
2016年6月 .NET技术大版内专家分月排行榜第二2016年3月 .NET技术大版内专家分月排行榜第二2016年1月 .NET技术大版内专家分月排行榜第二2015年12月 .NET技术大版内专家分月排行榜第二2015年2月 .NET技术大版内专家分月排行榜第二2015年1月 .NET技术大版内专家分月排行榜第二2014年11月 .NET技术大版内专家分月排行榜第二2014年5月 .NET技术大版内专家分月排行榜第二2014年4月 .NET技术大版内专家分月排行榜第二2012年2月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。C# Winform IrisSkin2 控件 程序打包后出现问题_百度知道C#WinForm程序异常退出的捕获、继续执行与自动重启 - 五名 - 博客园
本文参考网上搜索的信息,并做了适当修改可以让捕捉到异常之后阻止程序退出。
另给出了通过命令行自动重启的方法。
如果一个线程里运行下面的代码
int a = 0;
int c = 10 /
将会导致程序自动结束,而且没有任何提示信息 但是如果是在主线程里运行这个代码,是会弹出异常信息对话框的
请问如何在线程里也出现这个异常信息对话框.或者避免程序直接退出,忽略异常,继续往下执行呢?
在WINFORM主线程捕获全部异常就行,如下代码:
//处理未捕获的异常
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
//处理UI线程异常
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
//处理非UI线程异常
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
&最常出现的错误在 :UnhandledException 里出现。详细代码如下:
/// &summary&
/// 应用程序的主入口点。
/// &/summary&
[STAThread]
static void Main(string[] args)
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//处理未捕获的异常
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
//处理UI线程异常
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
//处理非UI线程异常
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
Application.Run(new Form1(args));
glExitApp = true;//标志应用程序可以退出
/// &summary&
/// 是否退出应用程序
/// &/summary&
static bool glExitApp = false;
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
LogHelper.Save("CurrentDomain_UnhandledException", LogType.Error);
LogHelper.Save("IsTerminating : " + e.IsTerminating.ToString(), LogType.Error);
LogHelper.Save(e.ExceptionObject.ToString());
while (true)
{//循环处理,否则应用程序将会退出
if (glExitApp) {//标志应用程序可以退出,否则程序退出后,进程仍然在运行
LogHelper.Save("ExitApp");
System.Threading.Thread.Sleep(2*1000);
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
LogHelper.Save("Application_ThreadException:" +
e.Exception.Message, LogType.Error);
LogHelper.Save(e.Exception);
//throw new NotImplementedException();
&如果程序需要重启只需要在捕获的事件处理时启动当前应用程序的代码即可。参考如下:
CmdStartCTIProc(Application.ExecutablePath, "cmd params");//放到捕获事件的处理代码后,重启程序,需要时加上重启的参数
/// &summary&
/// 在命令行窗口中执行
/// &/summary&
/// &param name="sExePath"&&/param&
/// &param name="sArguments"&&/param&
static void CmdStartCTIProc(string sExePath, string sArguments)
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = false;
p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.H
p.Start();
p.StandardInput.WriteLine(sExePath + " " + sArguments);
p.StandardInput.WriteLine("exit");
p.Close();
System.Threading.Thread.Sleep(2000);//必须等待,否则重启的程序还未启动完成;根据情况调整等待时间
&另外一种重启进程的方式:
//重启程序,需要时加上重启的参数
System.Diagnostics.ProcessStartInfo cp = new System.Diagnostics.ProcessStartInfo();
cp.FileName = Application.ExecutableP
cp.Arguments = "cmd params";
cp.UseShellExecute = true;
System.Diagnostics.Process.Start(cp);
看了觉得有用的朋友,如果您方便的话,可以顶一下。谢谢!c#winform高手来!!怎样让winform 通过命令行运行且不弹出form窗口_百度知道c#winform项目打包过后 运行打包项目就报下面的错 然后我不安装到C盘就不报这个错 是怎么回事 求高手_百度知道}

我要回帖

更多关于 winform 打包成exe 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信