2011-04-06 85 views
3

是否有任何方法可以區分用於Compact Framework並在Windows CE中運行的.NET程序集與另一個不是?如何區分Compact Framework與完整框架.NET程序集

我想說的更多,除了CF缺少方法和類之外,編譯方法還有什麼區別嗎?

如果我的假設是正確的,那麼在Windows CE中運行的.NET應用程序將始終運行在桌面Windows上,對吧?

回答

3

如果您想知道給定的程序集最初是否構建爲定位桌面或精簡框架,您可以查看程序集或它引用的程序集的公鑰標記。從MSDN文章Write Code Once For Both Mobile And Desktop Apps

注意,對於 .NET Compact Framework的公鑰標記組件 開始與9,而桌面 當量開始B.您可以使用 這些信息來快速確定是否 您正在部署的或參考的是桌面或設備 框架組件。

至於桌面程序集是否可以在CF上工作,反之亦然,ctacke在他的回答中提到了這一點。 MSDN文章也值得一看,因爲它提供了編寫可以在CF和桌面框架之間有效共享的代碼的一些示例和策略。

4

區別如何?編程方式?通過在資源管理器中查看它?有反射器?

組件編譯爲CF是「重定目標」,將桌面框架提供你不使用CE-具體的事情(P /調用coredll,使用WindowsMo​​bile的裝配,SIP控制等)下運行。

爲桌面編譯的程序集在任何情況下都不會在CF下運行。他們必須重新編譯。

編譯輸出的一個主要區別是CF CLR不支持桌面所有的操作碼,所以桌面IL可能在CF下無效。這並不是必需的,它阻止了一個完整的框架程序集在CF中工作,但是它的很大一部分。

相關問題