检测程序集所需的Silverlight版本

检测程序集所需的Silverlight版本,silverlight,reflection,mono.cecil,Silverlight,Reflection,Mono.cecil,如何判断Silverlight 2是否足以用于程序集,还是需要Silverlight 3? 我有通过反射(Mono.Cecil)获得的所有信息 SL 3与SL 4的问题相同 提前感谢。您不能仅从类库及其元数据来判断-这只能从.Xap中的Silverlight应用程序的嵌入式清单文件中可靠地确定。这可能正是您想要的: Assembly asm = Assembly.GetExecutingAssembly(); string[] parts = asm.FullName.Split(',');

如何判断Silverlight 2是否足以用于程序集,还是需要Silverlight 3?
我有通过反射(Mono.Cecil)获得的所有信息

SL 3与SL 4的问题相同


提前感谢。

您不能仅从类库及其元数据来判断-这只能从.Xap中的Silverlight应用程序的嵌入式清单文件中可靠地确定。

这可能正是您想要的:

Assembly asm = Assembly.GetExecutingAssembly(); 
string[] parts = asm.FullName.Split(',');
string version = parts[1];

4与3向后兼容,3与2向后兼容

你应该知道该应用内置了哪个版本的silverlight

安装和检测:

Assembly asm = Assembly.GetExecutingAssembly(); 
string[] parts = asm.FullName.Split(',');
string version = parts[1];
这一个有一个Javascript文件,该文件将检测是否安装了SL以及安装的版本:

如果您运行的SL版本错误,Thge GAC还将在编译过程中通知您。通常情况下,当您安装Silverlight tools并尝试编译应用程序时。例如,您的程序集是在版本3中创建的,并且您使用的控件仅在版本3中可用,您必须安装SL 3工具,否则生成将错误地通知您

有关Silverlight组件的更多信息:

Assembly asm = Assembly.GetExecutingAssembly(); 
string[] parts = asm.FullName.Split(',');
string version = parts[1];


那么,如果Silverlight 3的新功能未被使用,SL3组件是否可以被SL2应用程序引用和使用?SL4程序集也是这样吗?我不认为这些链接回答了这个问题,因为第一个链接是关于SL运行时的整体,第二个链接对版本没有帮助。按照定义,向后兼容意味着SL4允许SL3 LIB,但SL3允许SL4 LIB吗?它们只能向后兼容。3不支持四,2不支持三。在需要更新版本的情况下,您可以检测版本并强制安装。但我如何仅基于程序集检测版本?我不想安装SL,因为这是一个程序集分析问题。SL可能根本没有安装。我将更新我的答案,说明安装和检测过程是如何工作的。另请注意,大多数用户在发布新版本时会收到自动通知,并收到安装更新的通知。大多数silverlight用户安装了3.0。第一个链接有一个js文件,可以检测是否安装了sl以及安装的版本。