是否有任何方法可以區分用於Compact Framework並在Windows CE中運行的.NET程序集與另一個不是?如何區分Compact Framework與完整框架.NET程序集
我想說的更多,除了CF缺少方法和類之外,編譯方法還有什麼區別嗎?
如果我的假設是正確的,那麼在Windows CE中運行的.NET應用程序將始終運行在桌面Windows上,對吧?
是否有任何方法可以區分用於Compact Framework並在Windows CE中運行的.NET程序集與另一個不是?如何區分Compact Framework與完整框架.NET程序集
我想說的更多,除了CF缺少方法和類之外,編譯方法還有什麼區別嗎?
如果我的假設是正確的,那麼在Windows CE中運行的.NET應用程序將始終運行在桌面Windows上,對吧?
如果您想知道給定的程序集最初是否構建爲定位桌面或精簡框架,您可以查看程序集或它引用的程序集的公鑰標記。從MSDN文章Write Code Once For Both Mobile And Desktop Apps:
注意,對於 .NET Compact Framework的公鑰標記組件 開始與9,而桌面 當量開始B.您可以使用 這些信息來快速確定是否 您正在部署的或參考的是桌面或設備 框架組件。
至於桌面程序集是否可以在CF上工作,反之亦然,ctacke在他的回答中提到了這一點。 MSDN文章也值得一看,因爲它提供了編寫可以在CF和桌面框架之間有效共享的代碼的一些示例和策略。
區別如何?編程方式?通過在資源管理器中查看它?有反射器?
組件編譯爲CF是「重定目標」,將桌面框架提供你不使用CE-具體的事情(P /調用coredll,使用WindowsMobile的裝配,SIP控制等)下運行。
爲桌面編譯的程序集在任何情況下都不會在CF下運行。他們必須重新編譯。
編譯輸出的一個主要區別是CF CLR不支持桌面所有的操作碼,所以桌面IL可能在CF下無效。這並不是必需的,它阻止了一個完整的框架程序集在CF中工作,但是它的很大一部分。