我有一个面向 .NET 4.0.3 的大型应用程序需要在 XP 上运行。它使用 Visual Studio 2010 SP1 构建良好,并在 XP 上正常运行。
使用面向 .NET 4.0.3 的 Visual Studio 2012 进行构建也可以很好地构建并在 Windows 7 上运行良好,但无法在 XP 上运行。我收到一条错误消息,指出 MyApp.exe 不是有效的 Win32 应用程序。
如何使用 Visual Studio 2012 继续以 .NET 4.0.3 为目标并支持 XP 计算机?
我们也遇到这个问题了。这与您的应用程序的目标框架无关(我们的目标是 4.0 客户端)。
问题是 Visual Studio 2012 不会生成在 XP 上运行的单击一次 setup.exe。该错误具有误导性,因为它总是报告该程序不是有效的 Win32 应用程序。它可以在任何版本的 XP 上执行此操作,包括 64 位版本。
问题不是你的应用程序造成的,而是VS2012生成的setup.exe造成的。我们发现解决这个问题的唯一方法是使用 VS2010 进行发布。
我不确定这是否有效,但请尝试使用 EditBin.exe
手动设置子系统版本。
使用目标 4 但先决条件为 4.5 进行构建将启动安装程序,但系统检查失败
.csproj
文件
<!-- v4.0.3 target framework is >4.0, so default is 6.00 (Vista), set it back to 5.01 (XP) -->
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework'">
<SubsystemVersion>5.01</SubsystemVersion>
</PropertyGroup>