System.IO.Packaging

J’ai mon projet défini sur .NET Framework 4.0. Lorsque j’ajoute System.IO.Packaging , il dit qu’il n’existe pas. Il ne s’affiche pas non plus lorsque j’essaie de l’append comme référence au projet.

Comment puis-je append System.IO.Packaging à mon projet C #?

Selon un commentaire d’utilisateur sur cette page MSDN , vous devez append une référence à la bibliothèque WindowsBase .Net.

Pour une solution C # dans Visual Studio 2010 avec .NET 4.0:

  1. Dans l’explorateur de solutions de votre projet, cliquez avec le bouton droit sur Références et sélectionnez Ajouter des références dans le menu contextuel.
  2. Sélectionnez Assemblées dans le volet gauche, puis cliquez sur le bouton Parcourir en regard du champ Nom du fichier situé près du bas du volet.
  3. Accédez aux assemblys de référence .NET 4.0 et sélectionnez WindowsBase.dll . Par exemple, sur ma machine (Windows 7, 64 bits), le chemin complet est le suivant:

C: \ Program Files (x86) \ Références Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 \ WindowsBase.dll

Enregistrez la solution (surtout si vous comstackz à partir de la ligne de commande avec MSBuild) et vous devriez maintenant pouvoir append la directive using System.IO.Packaging au début de votre fichier .cs sans qu’une erreur apparaisse.

System.IO.Packaging est un espace de noms, pas une référence. La plupart (toutes les?) Des classes de l’espace de noms, telles que ZipPackage , sont déployées dans WindowsBase.dll .

Assurez-vous d’avoir une référence à WindowsBase.dll – si vous le faites, vous pouvez simplement append: en utilisant System.IO.Packaging; à vos fichiers .cs, et tout ira bien.

Notez que vous pouvez voir cela dans la documentation de toute classe sur MSDN . Par exemple, dans ZipPackage , il répertorie:

 Namespace: System.IO.Packaging Assembly: WindowsBase (in WindowsBase.dll) 

Nous pouvons également append WindowsBase.dll dans le framework Dot Net 3.5. J’utilise une machine XP et Path for WindowsBase.dll est

C: \ Program Files \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v3.5 \ Profil \ Client \ WindowsBase.dll

Exemple d’utilisation de System.IO.packaging est donné ici –

Utiliser System.IO.Packaging pour générer un fichier ZIP

L’espace de noms System.IO.Packaging est fourni par WindowsBase . Lorsque vous ajoutez une référence, ajoutez WindowsBase comme référence au lieu d’essayer de trouver System.IO.Packaging .

Vous devez append une référence à WindowsBase.dll. System.IO.Packaging est situé à cet endroit.

Voir cet article pour plus de détails:

http://msdn.microsoft.com/en-us/library/system.io.packaging.package.aspx

System.IO.Packaging v4.0.30319 est dans WindowsBase.dll v4.0.30319

Pour Windows 10, vous pourriez peut-être trouver ici

C: \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ WindowsBase \ v4.0_4.0.0.0__31bf3856ad364e35 \

Dans mon cas, j’utilisais un gestionnaire ashx. Pour que cela fonctionne, vous devez append l’assembly au projet et au gestionnaire:

 < %@ WebHandler Language="C#" Class="UploadExcelFile2" %> < %@ Assembly Name="WindowsBase, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %> 

Cela a finalement fonctionné pour moi, essayé à plusieurs resockets d’append WindowsBase comme référence (redémarrage de VS, redémarrage de la machine aussi) mais cela ne fonctionnait toujours pas jusqu’à ce que j’ajoute cela explicitement dans ma page aspx. J’ai utilisé: < %@ Assembly Name="WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %> comme la DLL que j’avais référencée était la version 4.0.