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 #?
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)\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.
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
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)
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 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
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.