詳解如何兼容Silverlight3及較低版本
還好Jeff Wilcox(Microsoft Silverlight Dev)給出了共存的解決方案
不過他的那個解決方案還是需要一定的消化和實驗才能測試成功(我花了將近半小時)
所以我才單獨寫篇博客,并加入了我的理解,希望對大家有幫助
前提條件:
◆Silverlight Tools For Visual Studio 2008 SP1
◆Silverlight 3 Tools Beta For Visual Studio 2008 SP1
◆Microsoft Expression Blend 3 Preview 選擇你的首要編譯環(huán)境:
如果你一般是以Silverlight 2來開發(fā)
請先安裝Silverlight 3 Tools Beta For Visual Studio 2008 SP1
然后在安裝Silverlight Tools For Visual Studio 2008 SP1
(其將卸載Silverlight 3 Tools,但是并不卸載Silverlight 3 SDK)
如果是主要開發(fā)Silverlight 3應(yīng)用程序
請先安裝Silverlight Tools For Visual Studio 2008 SP1
再安裝Silverlight 3 Tools Beta For Visual Studio 2008 SP1
支持多版本的編譯:要實現(xiàn)這個需要做兩步的步驟
1.拷貝原始目錄下的所有文件到目標目錄的根目錄下
原始目錄 | 目標目錄 |
C:\Program Files\MSBuild\Microsoft\Silverlight\v2.0\ | C:\Program Files\Microsoft SDKs\Silverlight\v2.0 |
C:\Program Files\MSBuild\Microsoft\Silverlight\v3.0\ | C:\Program Files\Microsoft SDKs\Silverlight\v3.0 |
我們就可以得到目標目錄的文件如下
注明下:如果你沒有安裝.Net RIA Services Preview
將不會有Microsoft.Ria.Client.targets這個文件
2.使用自定義的元素來支持想要編譯的Silverlight版本
用記事本打開Silverlight程序(不是Web那個)的Project項目文件(如CrossBuildTest.csproj)
找到如下的一句話:
主編譯環(huán)境是Silverlight 3 Beta
<Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight\v3.0\Microsoft.Silverlight.CSharp.targets" /> |
主編譯環(huán)境是Silverlight 2
<Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight \v2.0\Microsoft.Silverlight.CSharp.targets" /> |
如果想以Silverlight 2編譯,可以修改為如下代碼:
|
想以Silverlight 3 Beta編譯,修改如下
|
這時重新啟動程序?qū)⒖梢园凑漳愕脑O(shè)置來編譯你需要的版本的Silverlight應(yīng)用程序
當你按照上述指示去設(shè)置為編譯其他版本的時候
重新載入項目時彈出安全警告
選擇正常載入項目(Load Project normally)就可以了,這時我們就可以按照設(shè)定的版本來生成特定的Silverlight應(yīng)用程序如果你設(shè)置成了按照Silverlight 2來編譯應(yīng)用程序但是可能由于不小心用了Silverlight 3的新特性,VS將會提示錯誤如下我在Silverlight 2中引入了3D平面投影而彈出的錯誤提示
Demo:Silverlight 2在線測試
Silverlight 3在線測試(只有安裝了Silverlight 3 Developer Runtime才能正常解析)
【編輯推薦】