Loupe

#NUGET : utiliser des binaries différents pour Windows 8 et pour Windows 8.1 dans un package Nuget

Si comme nous, vous utilisez des packages nugets pour publier des frameworks, il peut être utile de fournir dans un même package des assemblies différentes pour Windows 8.0 et Windows 8.1. Plutôt que de chercher dans la doc de Nuget où vous ne trouverez pas de réponse vraiment précise, voici comment faire.

 

L’astuce

Lorsque vous définissez les fichiers à inclure dans votre package nuget, une cible (target) est précisée :

<file src="\NousA.InfiniteSquare\NousA.InfiniteSquare.dll" target="lib\netcore45" />

Dans ce cas, cette dll ciblera à la fois Windows 8.0 et Windows 8.1 car “netcore45” est la plateforme minimale.

Pour ajouter une dll spécifiquement utilisée à partir de Windows 8.1 (par exemple si vous utilisez le nouveau tout beau, génial httpclient) il faudra déclarer un fichier pour la plateforme netcore451.

C’est donc tout simple :

<file src="NousA.InfiniteSquare.win80\NousA.InfiniteSquare.dll" target="lib\netcore45" />
<file src="$NousA.InfiniteSquare.win81\NousA.InfiniteSquare.dll" target="lib\netcore451" />

 

Attention aux contrôles XAML

Lorsque vous ajoutez un contrôle XAML, vous spécifiez aussi son fichier XAML. Windows8.1 propose un nouveau format précompilé pour le XAML qui apporte de meilleures performances : le XBF. Vous n’en avez peut-être jamais entendu parler car tout est fait automatiquement pour vous mais c’est bien là Smile

 

Attention donc dans vos projets nuget de bien incorporer ces nouveaux fichiers XBF plutôt que des XAML comme auparavant :

On a  donc :

<file src="NousA.InfiniteSquare.win80\NousA.InfiniteSquare.dll" target="lib\netcore45" />
<file src="NousA.InfiniteSquare.win80\MonTemplate.xaml" target="lib\netcore45\MonTemplate.xaml" />

<file src="$NousA.InfiniteSquare.win81\NousA.InfiniteSquare.dll" target="lib\netcore451" />
<file src="NousA.InfiniteSquare.win80\MonTemplate.XBF" target="lib\netcore45\MonTemplate.XBF" />

Merci Jérémy pour ta persévérance sur le sujet, cela va parfaitement bien avec notre nuget (vraiment Smile with tongue outSmile with tongue out) sécurisé. Smile

Photo de profil

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus