C# 多目标.NET应用程序

C# 多目标.NET应用程序,c#,.net,visual-studio,C#,.net,Visual Studio,我想编写一个在windows 7、8、8.1和10上运行的应用程序,因此我将visual studio上的3.5.NET framework作为目标(应用程序名称>构建>目标框架>选择“.NET framework 3.5”),据我所知,它是windows 7默认附带的版本(如果不是,请更正我) 之后,我在visual studio中的app.config文件中添加了2个条目,因此整个文件如下所示: <?xml version="1.0" encoding="utf-8"?> <

我想编写一个在windows 7、8、8.1和10上运行的应用程序,因此我将visual studio上的3.5.NET framework作为目标(应用程序名称>构建>目标框架>选择“.NET framework 3.5”),据我所知,它是windows 7默认附带的版本(如果不是,请更正我)

之后,我在visual studio中的app.config文件中添加了2个条目,因此整个文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0"/>
    <supportedRuntime version="v2.0.50727"/>
  </startup>
</configuration>

现在,这是否足以让我的应用程序在Windows7及更高版本上运行?如果还不够,我如何才能做到这一点?我查看了所有堆栈溢出“类似问题”,但没有任何帮助


编辑:如果找不到.NET framework,我不希望用户收到.NET下载对话框的提示。

这应该足以让您的应用程序在安装了.NET framework 4或.NET framework 3.5的任何计算机上运行

如果安装了.NET Framework 4.0,请让应用程序更喜欢它,并确保您仍然支持仅安装了.NET Framework 3.5的用户。如果希望应用程序更喜欢3.5:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <startup>
        <supportedRuntime version="v2.0.50727"/>
        <supportedRuntime version="v4.0"/>
    </startup>
</configuration>


我要指出:支持Windows7及其在近8年前附带的框架是一个非常不同的区别。。。你是否希望你的重要用户永远不会升级或禁用升级?我希望最坏的情况发生在这里。。。具有新安装的windows 7或任何其他新安装的windows版本.NET v2应用程序的用户将在安装了.NET 3+的计算机上运行。但是您需要将v2作为目标,以便它在只安装了v2的计算机上运行。您是否考虑过将.NET运行时与应用程序打包并执行静默安装@JasCav实际上这不是一个选项,我会选择version=“v2.0.50727”包括.NET 2、.NET 3和.NET 3.5,version=“v4.0”包括.NET 4到.NET 4.7,所以通过这些条目,我涵盖了windows 7到windows 10。。。对吗?有点。但您并不是真正介绍了“windows 7到windows 10”,而是介绍了安装在windows上的不同版本的.NET Framework。谢谢您的帮助