C# 在Windows 10上运行dot net 3.5应用程序

C# 在Windows 10上运行dot net 3.5应用程序,c#,.net,wpf,.net-4.0,.net-3.5,C#,.net,Wpf,.net 4.0,.net 3.5,我已经创建了一个WPF应用程序,它应该在Windows7、8、8.1和10上本机运行 在Visual Studio中,我将.NET Framework设置为3.5,因为它与Windows 7捆绑在一起。但是,当我在Win10上运行它时,它会提示安装.NET 3.5,因为Win10与4.6捆绑在一起,默认情况下没有安装3.5 我怎样才能使我的应用程序在所有Windows版本>=7上运行,而不从Windows获得任何提示,也不安装任何东西?我认为你做不到。即使windows 10中有.net。Mic

我已经创建了一个WPF应用程序,它应该在Windows7、8、8.1和10上本机运行

在Visual Studio中,我将.NET Framework设置为3.5,因为它与Windows 7捆绑在一起。但是,当我在Win10上运行它时,它会提示安装.NET 3.5,因为Win10与4.6捆绑在一起,默认情况下没有安装3.5


我怎样才能使我的应用程序在所有Windows版本>=7上运行,而不从Windows获得任何提示,也不安装任何东西?

我认为你做不到。即使windows 10中有.net。Microsoft中的更新系统不会覆盖您当前的小程序(例如Chrome),但会向系统中添加更多内容(检查您的控制面板/卸载程序,查看您有多少Microsoft C++/.NET实例)

您可以创建一个安装程序,将您的app+.NET 4.5静默地安装到客户端计算机上。这样,您的应用程序将在每个操作系统上无缝运行。

它可以工作,找到了解决方案:

我们需要修改app.config文件,并在其中添加以下行:

<startup>
 <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
 <supportedRuntime version="v4.0"/>
 <supportedRuntime version="v2.0.50727"/>
</startup>

它从上到下决定,根据上面的列表找到哪个.net的第一个版本


捕获:构建后,在发行版文件夹中创建了一个ProgramName.exe.config文件,我们需要将它与ProgramName.exe一起复制到要运行的系统中。

我希望所有Windows 7计算机现在都安装了.NET 4.0或更高版本。您很可能需要将其包含在安装程序中。您无法运行应用程序,因为根据其定义,没有它的需求。。。(还有@ChrisF,我希望我的上一个项目就是这样,我们的很多用户都在使用不可靠的windows副本,不想安装windows更新以避免被检测)@Sayse-ah。我没有考虑过:(@ Casrf我也期待同样的,但我需要确定…..)@ Danton——那么你可能需要考虑用3.5来写启动器,尽管从我之前的评论中我们最终告诉我们的客户找到一种升级的方法,因为这对他们不仅仅是我们的软件有好处。我认为,作为终端用户,显示此类弹出窗口是可以接受的,前提是它们显示了解决方案。它要么会增加安装程序的大小,要么会需要internet连接+安装过程中的时间,过多的沉默不会让用户满意。.NET 4.5框架的体积远小于.NET 3.5。在我看来,在你的安装程序中增加67MB并不会带来太大的伤害。让我纠正一下关于静默安装的问题。我的意思是,在安装程序中,您可以检测.NET4.5的安装,并根据需要进行安装。将有可见的.NET4.5安装UI。所以它不太安静。顺便说一句,我在4.5机器上开发和在3.5机器上部署时有过不好的经验。有些bug只出现在已部署的计算机上。奇怪的是,当您的需求是运行在.NET 3.5及以上版本(即Windows 7及以上版本)上,而您正在构建3.5版本时,为什么您要让运行时退回到2.0版本?答案很清楚。它使用.NET2.0作为运行时,因为.NET3.5使用.NET2.0作为运行时。没有.NET 3.5特定的运行时。@感谢您对3.5运行时的澄清。也就是说,我没有质疑答案的清晰性,因为它不包括您刚才提供的信息,所以有澄清的余地,因此我question@ardila更准确地说,.NET3.5使用CLR2.0而不是.NET2.0。他有良好的通信能力。