2013-03-12 76 views
0

我沒有訪問IIS服務器的權限,但我被告知該網站已配置爲使用.NET Framework 1.1版運行。當我使用Telerik JustDecompile時,我看到以下內容。針對特定版本的.NET Framework編譯您的網站

enter image description here

「網1」似乎表明,2個DLL是對FW 1.1版編譯。網站dll「GLSS」旁邊的「ANY」是否表明該網站可以針對安裝在Web服務器上的任何.NET FW版本運行?

爲了準備升級到2.0,我要求網站管理員將站點配置更改爲FW的2.0版本,我很驚訝該網站(我認爲運行1.1代碼)仍然有效。我應該感到驚訝嗎?

這只是一個向後兼容性的簡單例子,並且該網站可以配置爲使用任何版本的框架,前提是它等於或高於代碼編譯使用的版本?

當我在解決方案中查看項目的屬性頁面時,我感到很驚訝的是,對於僅用於網站項目,我無法找到您要編譯的FW的版本。我能夠找到它的參考項目。

您能否幫助我更好地理解站點配置的FW版本與組件編譯版本之間的關係?

回答

1

您不應該感到驚訝,.NET總是向後兼容的,因爲編譯運行時版本的程序集應該運行在更新版本的運行時。

當然事物並不是向後兼容的,從微妙的語義差異開始,到對象契約級別(預期的方法/類不再存在的地方)的變化結束,當然存在一些細微的問題,但通常這些問題取決於關於你的應用程序的複雜性。假設簡單的應用程序應該沒有問題,這是安全的。

程序集編譯的運行時的編號是程序集元數據的一部分,它可以用反射讀取。因此,在運行時,至少有兩種可能的運行時版本 - 程序集編譯的版本和執行代碼的運行時的當前版本。

+0

感謝您的信息,但我仍然想知道爲什麼我沒有看到選擇主網站dll編譯的FW版本的選項,以及爲什麼使用反射的Telerik應用程序顯示「任何「作爲版本... – ChadD 2013-03-13 02:02:44

+0

您可以更改編譯您的網站的運行時版本。這就是所謂的「多目標」,據我所知,可以從VS2008或2010開始。但是,您可以選擇一定數量的框架,例如,這不可能將.NET 1.0或1.1與多目標定位(只有選定數量的較新版本可用)。 – 2013-03-13 08:18:59

相關問題