Réponses:
Selon un commentaire d'utilisateur sur cette page MSDN , vous devez ajouter une référence à la bibliothèque WindowsBase .Net.
Pour une solution C # dans Visual Studio 2010 avec .NET 4.0:
C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 \ WindowsBase.dll
Enregistrez la solution (en particulier si vous compilez à partir de la ligne de commande avec MSBuild) et vous devriez maintenant pouvoir ajouter la directive using System.IO.Packaging en haut de votre fichier .cs sans qu'une erreur n'apparaisse.
Nous pouvons également ajouter WindowsBase.dll dans Dot Net Framework 3.5. J'utilise la machine XP et le chemin pour WindowsBase.dll est
C: \ Program Files \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v3.5 \ Profile \ Client \ WindowsBase.dll
Un exemple d'utilisation System.IO.packaging
est donné ici -
Utilisation de System.IO.Packaging pour générer un fichier ZIP
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 d'avoir une référence à WindowsBase.dll
- si vous le faites, vous pouvez simplement ajouter: using System.IO.Packaging;
à vos fichiers .cs, et tout ira bien.
Notez que vous pouvez le voir dans la documentation de n'importe quelle classe sur MSDN . Par exemple, dans ZipPackage
, il répertorie:
Namespace: System.IO.Packaging
Assembly: WindowsBase (in WindowsBase.dll)
L' System.IO.Packaging
espace de noms est fourni par WindowsBase
. Lorsque vous ajoutez une référence, ajoutez-la WindowsBase
comme référence au lieu d'essayer de trouver System.IO.Packaging
.
Vous devez ajouter une référence à WindowsBase.dll. System.IO.Packaging s'y trouve.
Consultez 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 pouvez 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 ajouter 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, j'ai essayé plusieurs fois d'ajouter WindowsBase comme référence (VS redémarré, machine redémarrée aussi) mais cela ne fonctionnait toujours pas jusqu'à ce que je l'ajoute 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.