Как отличить Compact Framework от сборок Full Framework .NET - PullRequest
3 голосов
/ 06 апреля 2011

Есть ли способ отличить сборку .NET, предназначенную для Compact Framework и работающую в Windows CE, от другой, не являющейся?

Я бы сказал больше, есть ли разница в методе компиляции, кроме недостатка CF в методах и классах?

Если мои предположения верны, приложение .NET, предназначенное для запуска в Windows CE, всегда будет работать на настольной Windows, верно?

Ответы [ 2 ]

4 голосов
/ 06 апреля 2011

дифференцировать как? Programatically? Глядя на это в проводнике? С отражателем?

Сборки, скомпилированные для CF, являются «переориентируемыми» и будут работать в рамках рабочего стола при условии вы не используете ничего специфичного для CE (P / Invoking coredll, использование сборки WindowsMobile, контроль SIP и т. Д. ).

Сборки, скомпилированные для рабочего стола, не будут работать под CF ни при каких обстоятельствах. Они должны быть перекомпилированы.

Одним из основных отличий в скомпилированном выводе является то, что CF CLR не поддерживает все коды операций, которые поддерживает рабочий стол, поэтому IL рабочего стола может быть недопустимым в CF. Не обязательно то, что мешает полной сборке фреймворка работать под CF, но это большая его часть.

3 голосов
/ 07 апреля 2011

Если вы хотите указать, была ли данная сборка изначально построена для настольного компьютера или Compact Framework, вы можете посмотреть на токен открытого ключа для сборки или сборок, на которые она ссылается.Из статьи MSDN Однократная запись кода для мобильных и настольных приложений :

Обратите внимание, что маркер открытого ключа для сборок .NET Compact Framework начинается с 9, тогда как эквиваленты рабочего стола начинаютсяс помощью B. Вы можете использовать эту информацию, чтобы быстро определить, является ли то, что вы развертываете или ссылаетесь, сборкой рабочего стола или структурой устройства.

Относительно того, может ли сборка рабочего стола работать на CF или наоборот,ctacke обратился к этому довольно хорошо в своем ответе.Также стоит посмотреть статью MSDN, поскольку в ней приведены некоторые примеры и стратегии написания кода, которые могут эффективно использоваться совместно с CF и каркасом рабочего стола.

...