2011-09-06 107 views
6

這是一個有趣的。我有一個針對.NET 2.0構建的小型可執行文件,以確保它可以在各種平臺上運行。它是一個單一程序集,僅引用System。*命名空間。如何在一個應用程序中支持.NET 2.0和.NET 4.0?

當我在安裝了.NET 2.0的操作系統上運行它時,它運行正常。它不會在操作系統上運行,只有安裝了.NET 4.0,因爲.NET 4.0引入了新的運行時。因此,我將支持的運行時信息添加到app.config文件中,如here所述。我添加了兩個支持運行時:

<supportedRuntime version="2.0.50727" /> 
<supportedRuntime version="4.0" /> 

現在,當我運行安裝了.NET 2.0的系統上的應用,它無法運行

enter image description here

這沒有什麼區別,其中順序支持的運行時被定義,除了錯誤消息中所請求版本的順序發生變化以反映對app.config的更改(因此CLR顯然會正確地獲取該信息)。我安裝了.NET 2.0,它聲稱我需要安裝.NET 2.0!我試圖修復.NET 2.0的安裝,但沒有運氣。我在第二臺機器上再現了這種行爲。

什麼可能導致此失敗?

回答

11

我相信你可能只是還錯過了v

<supportedRuntime version="v2.0.50727" /> 
<supportedRuntime version="v4.0" /> 
相關問題