【问题标题】:Detect Silverlight version required by an assembly检测程序集所需的 Silverlight 版本
【发布时间】:2009-12-07 20:50:28
【问题描述】:

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

SL 3 与 4 的问题相同。

提前致谢。

【问题讨论】:

    标签: silverlight reflection mono.cecil


    【解决方案1】:

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

    【讨论】:

    • 那么如果不使用 Silverlight 3 的新特性,SL2 应用程序可以引用和使用 SL3 程序集吗?这对于 SL4 组件是否相同?
    【解决方案2】:

    这可能正是您想要的:

    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/

    【讨论】:

    • 我不认为这些链接回答了这个问题,因为第一个是关于整个 SL 运行时的,而第二个对版本没有帮助。根据定义,向后兼容意味着 SL4 允许 SL3 库,但 SL3 是否允许 SL4 库?
    • 它们只能向后兼容。 3不支持四,二不支持三。如果需要更新版本,您可以检测版本并强制安装。
    • 但是我如何仅根据程序集检测版本?我不想安装 SL,因为它是一个程序集分析问题。可能根本没有安装 SL。
    • 我将用安装和检测过程的工作方式更新我的答案。另请注意,大多数用户在发布新版本时会自动收到通知并收到安装更新的通知,大多数 silverlight 用户已安装 3.0。
    • 第一个链接有一个js文件,可以检测sl是否安装,什么版本。
    猜你喜欢
    • 2011-01-09
    • 1970-01-01
    • 2011-01-18
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多