2012-03-17 66 views
8

我寫了一個小工具來收集系統數據並將其輸出到文本框。根本沒有什麼複雜的,目的是審覈用戶機器以準備軟件推出。.NET 2/3應用程序拒絕在.NET下運行4

我不能說什麼版本的用戶將運行的.NET,所以當我創建解決方案時,我選擇了框架2.0。

在我的機器上調試和測試發佈的EXE很好。 當我將它加載到只有.NET 4.0(完整版)的XP機器上時,它拒絕運行,建議我需要安裝.NET 2.0。 然後,我將發佈版本更新到3.0,但是這也做了同樣的事情。

我在機器上安裝了.NET 4.0,爲什麼這個應用程序無法運行更高版本的安裝以及如何讓應用程序在所有.NET版本下運行?

回答

9

我過去所做的是以下設置添加到我的.NET 2.0應用程序的「* .exe.config」文件:

<?xml version="1.0" encoding="utf-8"?> 

<configuration> 
    <startup> 
     <supportedRuntime version="v2.0.50727"/> 
     <supportedRuntime version="v4.0"/> 
    </startup> 
</configuration> 

supportedRuntime element指定哪個.NET運行時的版本你的應用程序可以運行。

+5

需要注意的是,如果您打算在其上運行應用程序,您應該在.NET Framework 4中測試應用程序,因爲.NET 4是該框架的主要版本,並且可能引入了重大更改。 – 2012-03-17 16:35:07

+0

@DBM好點,謝謝提及! – 2012-03-17 16:35:49

+1

「可能有」?沒有。這就是爲什麼程序默認不能被標記爲兼容的原因。一個簡單的例子是(例如)'List '在.NET 4中實現'IEnumerable ',但之前沒有。 – hvd 2012-03-17 16:38:36

相關問題