web-dev-qa-db-fra.com

System.IO.Packaging

Mon projet est défini sur .NET Framework 4.0. Quand j'ajoute System.IO.Packaging, il dit que ça n'existe pas. Il n'apparaît pas non plus lorsque j'essaie de l'ajouter en tant que référence au projet.

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

111
Drake

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

166
Pedro

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 de la souris sur Références et sélectionnez Ajouter des références dans le menu contextuel.
  2. Sélectionnez Assemblies dans le volet de gauche, puis cliquez sur le bouton Parcourir en regard du champ Nom du fichier situé près du fond du volet.
  3. Accédez aux assemblys de référence .NET 4.0 et sélectionnez WindowsBase.dll . Par exemple, sur mon ordinateur (Windows 7, 64 bits), le chemin complet est le suivant: 

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

Enregistrez la solution (surtout si vous compilez à partir de la ligne de commande avec MSBuild) et vous devriez maintenant pouvoir ajouter la directive à l'aide de System.IO.Packaging en haut de votre fichier .cs sans une erreur apparaissant.

80
Steve HHH

Nous pouvons également ajouter WindowsBase.dll dans Dot Net Framework 3.5. J'utilise l'ordinateur XP et le chemin d'accès pour WindowsBase.dll est 

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

Exemple d'utilisation de System.IO.packaging est donné ici -

Utilisation de System.IO.Packaging pour générer un fichier Zip

4
Tapash

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

Assurez-vous que vous avez une référence à WindowsBase.dll - si vous le faites, vous pouvez simplement ajouter: en utilisant System.IO.Packaging; dans vos fichiers .cs et tout ira bien.

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

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

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.

3
Matthew Abbott

Vous devez ajouter 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

3
James Johnson

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 d'ashx. Pour que cela fonctionne, vous devez ajouter l'assembly au projet et le gestionnaire:

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

Cela a finalement fonctionné pour moi, en essayant à plusieurs reprises d’ajouter WindowsBase comme référence (redémarrage de VS, mais aussi de machine redémarrée), mais cela ne fonctionnait toujours pas tant que je n’ai pas ajouté cela explicitement dans ma page aspx. J'ai utilisé: <%@ Assembly Name="WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %> en tant que dll que j'avais référencé était la version 4.0.

0
Lanklaas