2009-08-11 37 views
3

考慮我的開發機器中有兩個版本的.Net(.Net 1.1,2.0)。如果我將我的應用程序X部署到.Net 1.1並部署另一個應用程序Y agaings .Net 2.0框架。我的代碼將在哪個CLR中執行?

現在我需要知道兩個應用程序在哪個CLR(1.1或2.0)下運行?

也說明我的原因?

+3

「黑暗的一面雲彩一切。不可能看到未來。「 – KristoferA 2009-08-11 12:21:37

回答

1

在Visual Studio 2008年起,您可以針對.NET Framework的特定版本 - 2.0,3.0或3.5

VS2008之前,它的固定 -

VS2005目標.Net框架V2.0

VS2003目標.Net框架1.1版

VS2002面向.NET框架1.0

如果指定了目標,它的Wi將需要該.Net框架的相關版本。

更正:它將運行在該版本或更高兼容的版本上。

+0

它不會要求特定的版本。例如,使用VS2003構建的應用程序可能會定位v1.1,但如果未安裝1.1但2.0仍然可以運行。 – 2009-08-11 12:14:14

+0

噢,我應該說的是 - 最低要求是該版本。 – 2009-08-11 12:17:20

+0

@Jon ...我剛纔記得 - 我認爲這不是真的,或者它可能是一個例外情況。我嘗試運行Quake2.net - 一個C - > C++,然後是C++ - 由Vertigo管理C++端口。它需要.Net 1.1。我安裝了.Net 2.0,但它特別要求v1.1。這是爲什麼?另外還有一個應用程序--FotoVision - 也來自Vertigo。而其他應用程序並非如此 - 我寫的應用程序,針對v2.0在只有v3.5的系統中運行良好!到底是怎麼回事? – 2009-08-14 15:13:12

12

MSDN article解釋這一切相當明確:

的.NET Framework的版本 的應用程序運行在確定 如下:

  • 如果的版本。 NET Framework 該應用程序是針對 構建的,該應用程序在該版本上運行。

  • 如果在.NET Framework 的版本的應用程序是針對 建不存在,並且配置 文件未指定在 <supportedRuntime>元一版, 應用程序運行在 的最新版本在計算機上出現 的.NET Framework。

  • 如果在.NET Framework 的版本的應用程序是針對 建不存在,並且配置 文件指定一個 <supportedRuntime>元一版, 應用運行在 被指定的最新版本應用 配置文件中和存在於 計算機。

薩姆在評論中提到,一個例外是ASP.NET,其中使用的版本的IIS管理控制檯中指定。

+0

另一個邊緣情況下,SQL CLR只能在.Net 2.0上運行 – 2009-08-11 22:59:28

2

只需添加到上面的回覆:如果你談論asp.net應用程式它改變了所有的遊戲規則。除了iis管理器中的框架配置選項外,該框架還會根據應用程序池加載,因此您必須確保共享應用程序池的所有應用程序都使用相同的框架版本。

相關問題