如何使用 Visual Studio 2012 在 XP 上定位 .NET 4.0.3?应用程序无法运行“不是有效的 Win32 应用程序”

Posted

技术标签:

【中文标题】如何使用 Visual Studio 2012 在 XP 上定位 .NET 4.0.3?应用程序无法运行“不是有效的 Win32 应用程序”【英文标题】:How do I target .NET 4.0.3 on XP using Visual Studio 2012? Application fails to run with "not a valid Win32 application" 【发布时间】:2012-09-01 10:42:43 【问题描述】:

我有一个需要在 XP 上运行的面向 .NET 4.0.3 的大型应用程序。它使用 Visual Studio 2010 SP1 构建良好,并在 XP 上正常运行。

使用面向 .NET 4.0.3 的 Visual Studio 2012 构建也可以正常构建并在 Windows 7 上运行良好,但无法在 XP 上运行。我收到一条错误消息,提示 MyApp.exe 不是有效的 Win32 应用程序。

如何继续以 .NET 4.0.3 为目标,支持使用 Visual Studio 2012 的 XP 机器?

【问题讨论】:

Visual Studio 2012 不支持 Windows XP 作为目标,但没有一些变通方法(请参阅microsoft.com/visualstudio/11/en-us/products/compatibility)。 我可以使用 Visual Studio 2012 构建一个 .NET 4.0 应用程序,它在 XP 上运行良好。 .NET 4.0.3 似乎有问题。 安装microsoft.com/en-gb/download/details.aspx?id=29053后在XP机器上能用吗? @John Saunders 谷歌是一回事,但无论如何你都去blogs.msdn.com/b/dotnet/archive/2012/03/05/… 我也遇到过同样的问题。在 VS2012 中通过 ClickOnce 部署应用程序会导致 Windows XP 用户收到not a valid Win32 appliaction 错误,但 Windows Vista 和 Windows 7 用户不受影响。我在这里发布了它:markdownpad.com/news/2012/version-1.3.5.6 【参考方案1】:

我们也遇到了这个问题。这与您的应用程序所针对的框架无关(我们针对的是 4.0 客户端)。

问题在于 Visual Studio 2012 不会在 XP 上运行 setup.exe 后产生点击。该错误具有误导性,因为它总是报告该程序不是有效的 Win32 应用程序。它适用于任何版本的 XP,包括 64 位版本。

问题不是你的应用程序造成的,而是VS2012产生的setup.exe。我们发现解决它的唯一方法是使用 VS2010 发布。

【讨论】:

【参考方案2】:

我不确定这是否可行,但请尝试使用 shown here 的技巧以使用 EditBin.exe 手动设置子系统版本。

【讨论】:

在VS2012环境下,使用editbin.exe "$(TargetPath)" /SUBSYSTEM:WINDOWS,5.01 /OSVERSION:5.1【参考方案3】:

Microsoft 最近刚刚发布了针对此问题的修复程序。 (包括 Express 版本。)

详情在:http://blogs.msdn.com/b/smondal/archive/2012/10/15/setup-exe-is-not-a-valid-win32-application.aspx

【讨论】:

只针对原生应用解决。 4.0.3 还没有工作(但 4.0 是)【参考方案4】:

可以在 Project Properties -> Publish -> Prerequisites 面板下设置目标系统要求(VS2012 with Update 1)。即使您正在为 .NET 4(项目属性 -> 应用程序 -> 目标框架)构建,您也需要将先决条件从 4.5 更改为 4,因为它不会自动放弃要求。

以 4 为目标但 prereq 为 4.5 的构建将启动安装程序但系统检查失败

【讨论】:

【参考方案5】:

VS2012 Update 1 应该可以解决这个问题。但是,我不确定要使用哪些选项,是项目属性->常规->平台工具集下的工具集吗?

【讨论】:

请注意,这不是项目属性,而是解决方案属性。【参考方案6】:

这对我有用 - 只需在 Studio 2012 中构建您的解决方案,然后从 Debug 文件夹中获取解决方案内容的副本。确保 XP 客户端已安装 .net 4。

【讨论】:

以上是关于如何使用 Visual Studio 2012 在 XP 上定位 .NET 4.0.3?应用程序无法运行“不是有效的 Win32 应用程序”的主要内容,如果未能解决你的问题,请参考以下文章

如何删除 Visual Studio 2012 的 Blend?

如何在 C++ 中使用 Microsoft Visual Studio 2012 查找语法错误?

Visual Studio 2012 中的 Phonegap:如何使用 console.log?

如何在 Windows 7 上使用 Visual Studio 2012(64 位)安装 OpenCV?

Visual Studio 2012 Express:如何使用自定义 Web 服务器进行调试

如何在 Visual Studio 2012 中使用 SQL Server Express 2008 部署 wpf 应用程序?