检测程序集所需的Silverlight版本

时间:2009-12-07 20:50:28

标签: silverlight reflection mono.cecil

如何判断Silverlight 2是否足以进行装配或需要Silverlight 3? 我拥有通过反射提供的所有信息(Mono.Cecil)。

SL 3与4相同的问题。

提前致谢。

2 个答案:

答案 0 :(得分:1)

您无法从类库及其元数据中分辨出来 - 这只能通过.Xap中的Silverlight应用程序的嵌入式清单文件可靠地确定。

答案 1 :(得分:1)

这可能正是您所寻找的:

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

http://www.apijunkie.com/APIJunkie/blog/post/2009/04/How-to-programmatically-detect-Silverlight-version.aspx

Version detection with 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

如果您运行的是错误版本的SL,Thge GAC也会在编译时通知您。通常,当您安装了Silverlight工具并尝试编译应用程序时。例如,您的程序集是在版本3中创建的,并且您使用的控件仅在3中可用,您必须安装SL 3工具,否则构建将会出错,让您知道。

有关Silverlight程序集的更多信息:

http://www.netfxharmonics.com/2008/12/Reusing-NET-Assemblies-in-Silverlight

http://nerddawg.members.winisp.net/AssemblySniffer/