Как определить, достаточно ли Silverlight 2 для сборки или требуется Silverlight 3?
У меня есть вся информация, доступная через отражение (Mono.Cecil).
Тот же вопрос для SL 3 против 4.
Заранее спасибо.
Как определить, достаточно ли Silverlight 2 для сборки или требуется Silverlight 3?
У меня есть вся информация, доступная через отражение (Mono.Cecil).
Тот же вопрос для SL 3 против 4.
Заранее спасибо.
Вы не можете сказать это только по библиотеке классов и ее метаданным — это можно надежно определить только из встроенного файла манифеста приложения Silverlight в .Xap.
Возможно, это именно то, что вы ищете:
Assembly asm = Assembly.GetExecutingAssembly();
string[] parts = asm.FullName.Split(',');
string version = parts[1];
http://forums.silverlight.net/forums/p/23321/82774.aspx#82774
4 обратно совместим с 3, 3 обратно совместим с 2.
Вы должны знать, в какую версию Silverlight встроено приложение.
Установка и обнаружение:
В нем есть файл Javascript, который определяет, установлен ли SL и какую версию: http://blog.mdk-photo.com/post/Detecting-Silverlight-version-installed.aspx
Определение версии с помощью Silverlight
http://www.scribd.com/doc/14938624/Creating-a-Custom-Silverlight-Installation-Experience
http://blogs.msdn.com/tims/archive/2007/10/29/optimizing-the-silverlight-install-experience.aspx
GAC также уведомит вас во время компиляции, если вы используете неправильную версию SL. Обычно, когда у вас установлены инструменты Silverlight и вы пытаетесь скомпилировать приложение. Например, ваша сборка создана в версии 3, и вы используете элемент управления, который доступен только в версии 3, вам нужно будет установить инструменты SL 3, иначе сборка сообщит вам об ошибке.
Подробнее о сборках Silverlight:
http://www.netfxharmonics.com/2008/12/Reusing-NET-Assemblies-in-Silverlight
http://nerddawg.members.winisp.net/AssemblySniffer/