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

问题描述:

我有一个针对.NET 4.0.3的大型应用程序,需要在XP上运行。它使用Visual Studio 2010 SP1进行构建并在XP上正常运行。如何使用Visual Studio 2012在XP上定位.NET 4.0.3?应用程序无法运行“不是有效的Win32应用程序”

使用Visual Studio 2012构建面向.NET 4.0.3的构建也很好,在Windows 7上运行良好,但无法在XP上运行。我收到一个错误,说MyApp.exe不是有效的Win32应用程序。

如何继续使用Visual Studio 2012支持XP机器的.NET 4.0.3?

+1

如果没有一些解决方法,Visual Studio 2012不支持Windows XP作为目标(请参阅http://www.microsoft.com/visualstudio/11/zh-cn/products/compatibility)。 – Dai

+1

我可以使用Visual Studio 2012构建.NET 4.0应用程序,它在XP上运行良好。它似乎有一个与.NET 4.0.3的问题。 – KTrace

+0

在安装http://www.microsoft.com/en-gb/download/details.aspx?id=29053后它能在XP机器上工作吗? – PhonicUK

我不确定这会起作用,但请尝试使用shown here来手动设置子系统版本EditBin.exe

+0

嘿,它的作品!谢谢。 – Sebastian

+1

在VS2012环境中,使用'editbin.exe“$(TargetPath)”/SUBSYSTEM:WINDOWS.5.01/OSVERSION:5.1'' – Sebastian

我们也有这个问题。这不是你的应用程序所针对的框架(我们的目标是4.0客户端)。

问题是,Visual Studio 2012不会产生一次单击setup.exe,它将在XP上运行。错误是误导性的,因为它总是报告该程序不是有效的Win32应用程序。它在包括64位版本的任何XP版本上都可以这样做。

这不是你的应用程序引起的问题,它是由VS2012产生的setup.exe。我们发现解决这个问题的唯一方法是使用VS2010进行发布。

微软刚刚为此发布了一个修复程序。 (包括快递版本。)在

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

+0

它只适用于本地应用程序。 4.0.3还没有工作(但4.0是) – Sebastian

VS2012更新1应该解决这个问题。但是,我不确定要使用什么选项,它是工程属性 - >常规 - >平台工具集下的工具集?

+1

只解决了它的本机应用程序 – Sebastian

+0

请注意,这不是项目属性,但解决方案的属性。 – Mark

可以在项目属性 - >发布 - >先决条件面板(具有更新1的VS2012)下设置目标系统要求。即使您正在构建.NET 4(项目属性 - >应用程序 - >目标框架),您也需要将先决条件从4.5更改为4,因为它不会自动删除需求。

大厦为4的目标,但4.5前提条件将启动安装程序,但无法对系统检查

+0

感谢这个信息..解决了我的问题 – gezzuzz

这为我工作 - 只是建立在2012年Studio中的解决方案,并充分利用解决方案的内容的拷贝从Debug文件夹。确保XP客户端已安装.net 4。