我使用 c# 在 Visual Studio 2012 中创建了一个小型 Windows 窗体应用程序,在发布模式下构建它,该 exe 无法在另一台计算机上运行
3 回答
在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 上运行的程序。
如果需要,在另一台计算机上安装所有依赖项(如 .net)和其他文件
您必须从“Visual Studio 安装项目”创建一个 EXE,因为 bin 文件夹“exe”应该只包含主要输出。但是您需要安装所需的依赖项才能安装和使用其他系统。
如何创建一个EXE? http://balanagaraj.wordpress.com/2007/05/29/create-exe-or-setup-file-in-net-windows-application/