2009-10-12 31 views
2

我發現用Silverlight SDK v2.0和v3.0編譯的程序集都參考了mscorlib.dll,system.dll等的v2.0.5.0如何區分Silverlight v2.0和v3.0程序集

如何確定程序集X是v2.0/v3.0程序集?

+0

在什麼時候你想做這個決定嗎?這是編譯時間還是運行時期望? – 2009-10-13 10:16:41

回答

0

如果您將此dll添加到visual studio中,您可以右鍵單擊該屬性,運行時版本會告訴您。

您也可以編寫一個程序來加載並查看。如..

// now get an external assembly 
    AssemblyName anm = AssemblyName.GetAssemblyName( 
    "c:\\winnt\\microsoft.net\\framework\\v1.0.3705\\mscorlib.dll"); 
    // and show its version 
    Console.WriteLine(anm.Version.ToString()); 
+0

完全沒有幫助! Silverlight的兩個版本都有mscorlib 2.0.5.0。 – 2009-10-12 18:51:08

+0

你爲什麼在意?如果兩者在2.0.5.0上具有相同的mscorlib,則它們是相同的。它不會因爲v2/v3 silverlight而有所不同。 – 2009-10-12 20:34:04

+0

好吧,我有我的理由。它們不一樣 - 它們有不同的尺寸。其他人是否知道答案? – 2009-10-13 03:59:29

3

我建議你避免任何形式的基於Silverlight的版本「怪癖模式」用於控制或應用程序的執行...它可以成爲一個maintainence噩夢。

例如,當Silverlight 4出現時會發生什麼?如果下一個版本修復了您爲Silverlight 3問題定製的某些行爲,該怎麼辦?

這是正確的的Silverlight 2和3組件都有[的AssemblyVersion(2.0.5.0)固定,使這個困難:-(

要試圖回答:你可以使用公共反射來檢查的UIElement 。獲取一個UIElement的類型,然後尋找在Silverlight 3中添加的東西,例如在UIElement上的mouse wheel support的MouseWheel事件。我再次不推薦它,但是你可以做到這一點。

+0

保持AssemblyVersion不變的原因是什麼?要允許SL3插件支持SL2 xaps/dll? – AnthonyWJones 2009-10-13 08:34:08

+0

我們對於兼容性的前進非常認真,修復版本號意味着未來版本可以繼續運行先前構建的程序集,而不需要經過痛苦的重建,也沒有類型轉發器等等。它並不完美,並且讓我感到害怕,但是這是現在的情況。 – 2009-10-13 17:39:48

相關問題