在Visual Studio 2015中使用WPF 4.5降级到4.0

问题描述:

降级所有引用,软件包并确保应用程序在.NET 4.5 PC上仍能正常运行后,当我尝试在装有.NET 4.0的PC上运行应用程序时,我仍然得到消息:在Visual Studio 2015中使用WPF 4.5降级到4.0

“要运行该应用程序,您必须首先安装.NET Framework的以下版本之一: .NETFramework,4.5版”

为了检查是否每一个组件被降级正确地,我创建了一个小型控制台应用程序来遍历所有程序集并检查

System.Console.WriteLine(System.Reflection.Assembly.LoadFrom(item.FullName).ImageRuntimeVersion); 

结果是预期的,只有.net 4.0或2.0程序集。

我还检查的app.config:

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

该应用程序运行在与.NET 4.5的PC很好,但它需要在.NET 4.0工作了。

还有什么可以丢失?

+0

4.0和4.5之间有显着的[差异](http://*.com/q/12384794/1997232)。如果您有4.5版本的源代码,那么在可编译4.0版本之前,需要进行许多更改。是的,你必须重新编译[targeting](https://msdn.microsoft.com/en-us/library/bb398202.aspx)另一个(较低)的框架版本。惊喜? – Sinatr

+0

对代码进行的更改已完成,适用于.net 4.0的应用程序可以正常运行(在.net 4.5 PC上)。艰苦的工作已经完成。我的问题是,如果所有程序集都以.net 4.0为目标,可能会丢失什么?谢谢。 –

+0

最早支持的.NET版本是4.5.2。只需安装适当的运行时间,它是4.0和4.5的二进制替代品。无论谁设置这台电脑,都必须手动安装4.0,它不是*任何操作系统的一部分。 Windows 78带有3.5,Windows 8带有4.5。降级只会给您带来不受支持的版本,无论如何将很快升级 –

问题出在app.config中。我有独立的调试,发布和阶段配置。当我在Visual Studio上降级项目时,它显然只降级了一个app.config。

手动修复sku到4.0后,问题消失了。

谢谢!