2009-12-07 23 views

Répondre

1

Vous ne pouvez pas savoir à partir de la bibliothèque de classes et de ses métadonnées: cela ne peut être déterminé de manière fiable qu'à partir du fichier manifeste incorporé d'une application Silverlight dans le fichier .Xap.

+0

Donc, si les nouvelles fonctionnalités de Silverlight 3 ne sont pas utilisés, l'assemblage SL3 peut être référencé et utilisé par des applications SL2? Est-ce la même chose pour les assemblages SL4? –

1

Cela pourrait être exactement ce que vous recherchez:

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

http://forums.silverlight.net/forums/p/23321/82774.aspx#82774

4 est rétrocompatible avec 3, 3 est en arrière compatiable avec 2.

Vous devez savoir que version de Silverlight l'application est intégrée.

Installation et détection:

Celui-ci a un fichier Javascript qui permet de détecter si SL est installé et quelle version: 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

Le GAC vous informera également de la compilation si vous utilisez la mauvaise version de SL. En règle générale, lorsque vous avez installé des outils Silverlight et essayez de compiler une application. Par exemple votre assembly est créé dans la version 3 et vous utilisez un contrôle qui n'est disponible que dans 3, vous devrez installer des outils SL 3 ou la compilation vous fera savoir.

Plus d'informations sur les ensembles Silverlight:

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

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

+0

Je ne pense pas que ces liens répondent à la question, parce que le premier concerne l'exécution de SL dans son ensemble, et le second n'aide pas avec la version. La rétrocompatibilité par définition signifie que SL4 autorise les bibliothèques SL3, mais SL3 autorise-t-elle les bibliothèques SL4? –

+0

ils sont seulement rétrocompatibles. 3 ne supporte pas quatre et deux ne supporte pas trois. Dans le cas où une version plus récente est requise, vous pouvez détecter la version et forcer une installation. –

+0

Mais comment je détecte une version basée sur l'assemblage seul? Je ne veux pas installer SL car c'est une question d'analyse d'assemblage. SL peut ne pas être installé du tout. –