我有一个基于 Windows Server 2012 和 .NET 4.5 构建的 C# 应用程序。现在作为另一个过程的一部分,另一台机器需要运行这个应用程序。 它可能正在使用 Process.Start 来执行我的 .exe 文件。我不能说 100%,因为我无权访问代码。使用 .NET 4.0 时一切正常,但现在当我迁移到 .NET 4.5 时,它抛出异常:
The specified executable is not a valid application for this OS platform
我假设问题是这台机器上没有安装 .NET 4.5,所以我从配置文件中删除了这一行以支持在 .NET 4.0 上运行。
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/></startup>
它仍然没有帮助,并且抛出相同的异常。 我的应用程序引用了另一个使用 4.5.1 框架的库,但这无关紧要。我在某处读到它们被视为 4.0 应用程序(未使用 4.5 功能)。构建服务器也从 Windows Server 2003 更改为 Windows Server 2012,但使用哪个操作系统构建应该无关紧要,不是吗?感谢您的帮助。
最佳答案
The specified executable is not a valid application for this OS platform
您的应用程序应该使用 AnyCPU
平台构建。如果您尝试在 32 位操作系统上运行使用 Debug|x64
或 Release|x64
构建的应用程序,整个可执行文件将无法运行,您将收到该错误。
更新
OP 在一些评论中说:
Issue doesn't seem to be fixed. Does it matter that one of the referenced libraries is forced to use x86 due to C++ references?
然后,您被迫从 32 位进程启动该进程。
关于c# - .NET 4.0 到 4.5 迁移并在 4.0 机器上运行异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33416132/