2016-08-04 54 views
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://stackoverflow.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。降級只會給您帶來不受支持的版本,無論如何將很快升級 –

回答

0

問題出在app.config中。我有獨立的調試,發佈和階段配置。當我在Visual Studio上降級項目時,它顯然只降級了一個app.config。

手動修復sku到4.0後,問題消失了。

謝謝!

相關問題