我使用 Visual Studio 2013 Pro 构建了我的第一个小型控制台应用程序。这个控制台应用程序应该可以在我们网络中的每台计算机上快速运行。我们至少运行 Windows XP SP3 到 Windows 8.1。
因此,我创建了一个针对 .NET 2.0 的应用程序,但令我惊讶的是,一台 Windows 8 机器提示说它必须为此安装/激活 .NET 3.5。默认情况下,Windows 8 没有激活此功能!
当我以 2.0 为目标时,它可以在我们所有的 XP 和 W7 设备上运行,但不能在 W8 上运行。 当我以 4.0 为目标时,它可以在所有 W8 和一些 W7 上运行,但不能在 XP 上运行。
这是同一个应用程序..所以真的没有办法告诉操作系统使用可用的框架吗?
我已尝试将配置文件“MyAppName.exe.config”和“App.config”添加到包含以下内容的项目中:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
我交换了顺序并以 .NET 2.0、3.0、3.5 和 3.5 Client Profile 为目标。 但是当不针对 >= .NET 4 时,W8 一直要求激活 .NET 3.5
当客户端安装了 .NET 2.0 或更高版本时,如何让这个小应用程序在 XP SP3、W7 和 W8 上运行而不需要安装任何额外的框架?
最佳答案
我相信您只是错过了 startup
元素:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
只需尝试使用此配置使用目标版本 3.5 再次构建它。
关于其他选项。您是否在 Windows XP 和 Windows 8 上安装了 .NET Framework 4.0?如果是这样,您可以在构建应用时尝试使用此版本作为目标版本。
关于c# - 如何构建 Windows 7 和 Windows 8 默认支持的 .NET 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20052394/