辨析Visual Studio 2010 RC中WPF開發(fā)的改進
Visual Studio 2010 RC可以說就是未來Visual Studio 2010正式版的雛形,大致上將沒有太多的變化。本文作者將為大家介紹Visual Studio 2010 RC中關(guān)于WPF開發(fā)方面的改進。想了解更多請看續(xù)篇《Visual Studio 2010 RC關(guān)于WPF開發(fā)多個不同》。
目前,我正在將過去VS2008的程序移植到Visual Studio 2010 RC上。當然也會發(fā)現(xiàn)細節(jié)上的不同之處。寫出來和大家分享。
X個不同之一,用X主要是我實在是不知道會有多少個不同。權(quán)且就用X代替了。先說今天發(fā)現(xiàn)的吧。
很多人建立一個WPF程序,喜歡新建一個WPF標準程序,當然我也不例外。不過有時 我也喜歡手工建立一個WPF應(yīng)用程序,這樣做我坦言很大程度上是滿足一下自己小小的虛榮心。讓一個新手看你的時候,眼神中流露出一種無盡崇拜的光芒,這種光芒是一種鴉片,會上癮的。
比如使用寫字板新建一個hellowpf.cs文件。然后鍵入如下代碼:
- using System;
- using System.Windows;
- class hellowpf
- {
- [STAThread]
- public static void Main()
- {
- Window win = new Window();
- win.Title = "Hello mumu!";
- win.Width = 300;
- win.Height = 200;
- win.Show();
- Application app = new Application();
- app.Run();
- }
- }
手工編譯,可以使用開始菜單->所有程序->Microsoft Visual Studio 2010->Visual Studio Tools->Visual Studio 2010 Command Prompt,然后啟動VS2010的命令行窗口,在里面鍵入編譯命令。在過去VS2008下的編譯命令如下所示:
- csc hellowpf.cs /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\presentationframework.dll"
- /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\windowsbase.dll"
- /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\presentationcore.dll"
這句話的意思是使用csc命令來編譯hellowpf該文件,還有需要引用三個程序集分別是presentationframework.dll,windowsbase.dll和presentationcore.dll。實際上一個典型的WPF程序至少需要四個程序集,還有一個是System.dll。由于默認情況下,已經(jīng)引用了System.dll,因此不用顯示地引用該dll。
我查看了一下安裝了Visual Studio 2010 RC之后的引用程序集所在的目錄。這三個Dll均在C:\Program Files\Reference Assemblies\Microsoft\Framework\.NetFramework\V4.0之下。于是這個編譯命令可以想當然地改成下面的樣子
- csc hellowpf.cs /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NetFramework\V4.0\presentationframework.dll"
- /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NetFramework\V4.0\windowsbase.dll"
- /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NetFramework\V4.0\presentationcore.dll"
事實告訴我們“想當然”多半是想當然地錯。
編譯完畢會提示 缺一個稱之為System.Xaml.dll的程序集,換句話說過去一個典型的WPF程序只需要四個程序集的時代結(jié)束了,它還需要一個System.xaml.dll的程序集 由四人幫變成了五朵金花。因此編譯命令應(yīng)該寫成如下,才能成功。
- csc hellowpf.cs /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NetFramework\V4.0\presentationframework.dll"
- /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NetFramework\V4.0\windowsbase.dll"
- /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NetFramework\V4.0\presentationcore.dll"
- /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NetFramework\V4.0\system.xaml.dll
這是Visual Studio 2010 RC和過去VS2008X個不同之一,現(xiàn)總結(jié)如下:
在過去VS2008的程序里,一個最為簡單的WPF程序至少需要四個程序集 system.dll,presentationframework.dll,windowsbase.dll和presentationcore.dll.
而Visual Studio 2010 RC里,需要五個程序集,除去前面的四個,還有System.xaml.dll。
由此也帶來了一個問題,這個System.xaml.dll在這樣一個簡單的WPF程序里起到了什么作用?在下面鏈接里我搜索到了相關(guān)的資料http://ks.cn.yahoo.com/question/1409112400066.html 列出該資料的意思 不是說Helloj2ee找到了答案,而是所如果有大哥樂于作答 請不要在貼上這個鏈接了。而是給除更為翔實的資料。
此外在Visual Studio 2010 RC當中 還有一個不同 由于頗為細枝末節(jié),不容易單獨成文,因此就在這里提出:
Helloj2ee安裝了Visual Studio 2010 RC確實沒有找到XAMLPad,為何?
過去的XAMLPad通常都在\Program Files\Microsoft SDKs\Windows\v6.0A\bin目錄下,安裝了Visual Studio 2010 RC之后,目錄改成了V7.0A,尋遍該目錄也沒有XAMLPad,試問為何?
此為2008pack1下手工編譯的示例:http://files.cnblogs.com/helloj2ee/2008.rar
此為2010RC下手工編譯的示例:http://files.cnblogs.com/helloj2ee/2010.rar
原文標題:VS2010RC關(guān)于WPF開發(fā)的X個不同之一——居然多了一個程序集引用
鏈接:http://www.cnblogs.com/helloj2ee/archive/2010/02/28/1674979.html
【編輯推薦】