-1

我使用 c# 在 Visual Studio 2012 中创建了一个小型 Windows 窗体应用程序,在发布模式下构建它,该 exe 无法在另一台计算机上运行

4

3 回答 3

1

在VS2012上新建C#项目的默认设置,会生成一个不能在XP上运行的EXE。VS2012 的默认 .NET Framework 目标是 .NET 4.5,这是一个不适用于 XP 的 .NET 版本。

但它做了其他非常重要的事情,它还在 EXE 标头中标记了目标 Windows 版本。此字段已设置为版本 4.00,即 Windows NT 和 Windows 95 的版本号,只要 .NET 一直存在。即使它实际上并没有在那些旧的 Windows 版本上运行。

.NET 4.5 编译器的新功能,它现在将目标版本设置为 6.00,即 Vista 版本。这是向前迈出的相当重要的一步,在较新版本上运行标记为 4.00 的程序会打开几个 app-compat 垫片。造成很多麻烦的一个重要问题是不了解 Aero 的程序的垫片,尤其是它的胖窗口边框。当您询问窗口大小时,您的程序会被 Windows 欺骗。你会得到一个伪造的大小,小 6 像素。

此更改的副作用是您的程序将在 XP 上立即失败,甚至在您发现未安装所需的 .NET 版本之前。Windows 将立即拒绝该 EXE。

将项目的 .NET Framework 目标设置更改为 4.0 或更低,以创建将在 XP 上运行的程序。

于 2013-09-01T12:01:12.290 回答
0

如果需要,在另一台计算机上安装所有依赖项(如 .net)和其他文件

于 2013-09-01T11:28:16.110 回答
0

您必须从“Visual Studio 安装项目”创建一个 EXE,因为 bin 文件夹“exe”应该只包含主要输出。但是您需要安装所需的依赖项才能安装和使用其他系统。

如何创建一个EXE? http://balanagaraj.wordpress.com/2007/05/29/create-exe-or-setup-file-in-net-windows-application/

于 2013-09-10T10:16:34.687 回答