应用程序放在去计算机哪里可以运行,c# - C#Winform应用程序无法在其他计算机上运行(神秘的启动时) - 堆栈内存溢出...

我在Visual Studio中创建了一个winforms应用程序。 这个应用程序是一个简单的Hello World应用程序,按下时将按钮的文本更改为“Hello World”。

以下是代码:

using System;

using System.Windows.Forms;

namespace HelloWorld

{

public partial class Form1 : Form

{

public Form1()

{

try

{

InitializeComponent();

}

catch (Exception ex)

{

MessageBox.Show(ex.ToString());

}

}

private void button1_Click(object sender, EventArgs e)

{

try

{

button1.Text = "Hello World";

button1.Enabled = false;

}

catch (Exception ex)

{

MessageBox.Show(ex.ToString());

}

}

}

}

当我尝试在我的开发计算机上打开这个程序时,一切正常。 我尝试在安装了.NET 3.5的10台不同的Windows PC上运行(我的目标平台),并且每个人都做同样的事情。

一旦我双击,或右键单击并以管理员身份运行,似乎应用程序什么都不做,但我可以告诉它正在做某事,因为鼠标光标变为等待光标......并且它无限期地执行此操作。 它还会产生应用程序名称的3个无法终止的进程。 没有错误或“此应用程序已停止工作”被抛出。

此外,我无法使用任务管理器,进程资源管理器,debugdiag或procdump创建故障转储。 当我尝试使用进程资源管理器获取转储时...它会说“只是ReadProcessMemory的一部分”。 当我尝试使用debugdiag创建时...转储是0字节并且在分析时失败。 当我尝试使用procdump进行转储时...它将永远坐在那里。

我甚至试图以这种方式试图强迫某种错误......

using System;

using System.Windows.Forms;

namespace HelloWorld

{

static class Program

{

///

/// The main entry point for the application.

///

[STAThread]

static void Main()

{

try

{

System.Windows.Forms.Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);

System.Windows.Forms.Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(OnGuiUnhandedException);

AppDomain.CurrentDomain.UnhandledException += OnUnhandledException;

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

Application.Run(new Form1());

}

catch (Exception e)

{

HandleUnhandledException(e);

}

finally

{

// Do stuff

}

}

private static void HandleUnhandledException(Object o)

{

// TODO: Log it!

Exception e = o as Exception;

if (e != null)

{

}

}

private static void OnUnhandledException(Object sender, UnhandledExceptionEventArgs e)

{

HandleUnhandledException(e.ExceptionObject);

}

private static void OnGuiUnhandedException(object sender, System.Threading.ThreadExceptionEventArgs e)

{

HandleUnhandledException(e.Exception);

}

}

}

后来我尝试在Main()函数开头的program.cs中放入一个MessageBox和一个返回。 它仍然在所有10台PC上做同样的事情。 所以我认为当程序运行时,它实际上从未达到过:

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

Application.Run(new Form1());

毕竟,我想知道它是否必须对我的Visual Studio设置或配置做任何事情。

我采取的步骤:

我在Visual Studio 2015中创建了新的winforms应用程序

我将.Net平台改为3.5

我编写简单的应用程序如上所示

在配置管理器下,我改为x86

我内置了调试和发布模式

在此之后,我尝试了3种部署方法:

将整个版本文件夹复制到另一台计算机

尝试过ClickOnce技术

试过InstallShield Limited

所有这些都没有用。 它们都做同样的事情......产生3个具有相同名称但无法终止的进程,除非我重新启动计算机。 无法创建转储以查看问题所在。 我跑步时无限期挂起,不显示任何错误或窗口。 ClickOnce和InstallShield永远不会通过任何类型的向导。 他们只是无限期地挂起......

我尝试在朋友的PC上定位2.0,3.0,3.5,4.0,4.5,4.5.2 .NET版本,我也遇到了同样的情况。 这些PC是Windows 7和8.1。 为什么我的简单HelloWorld应用程序会这样做? 它是否在我的Visual Studio配置中?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值