Risposte:
Secondo un commento dell'utente su questa pagina MSDN , è necessario aggiungere un riferimento alla libreria WindowsBase .Net.
Per una soluzione C # in Visual Studio 2010 con .NET 4.0:
C: \ Programmi (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 \ WindowsBase.dll
Salva la soluzione (specialmente se stai compilando dalla riga di comando con MSBuild) e ora dovresti essere in grado di aggiungere la direttiva using System.IO.Packaging all'inizio del tuo file .cs senza che venga visualizzato un errore.
Possiamo aggiungere WindowsBase.dll anche in Dot Net Framework 3.5. Sto usando una macchina XP e Path per WindowsBase.dll è
C: \ Program Files \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v3.5 \ Profile \ Client \ WindowsBase.dll
Esempio per l'utilizzo System.IO.packaging
è fornito qui:
System.IO.Packaging
è uno spazio dei nomi, non un riferimento. La maggior parte (tutte?) Delle classi all'interno dello spazio dei nomi, come ZipPackage , vengono distribuite in WindowsBase.dll
.
Assicurati di avere un riferimento a WindowsBase.dll
- se lo fai, puoi semplicemente aggiungere: using System.IO.Packaging;
ai tuoi file .cs e starai bene.
Nota che puoi vedere questo nella documentazione per qualsiasi classe su MSDN . Ad esempio, in ZipPackage
, elenca:
Namespace: System.IO.Packaging
Assembly: WindowsBase (in WindowsBase.dll)
Lo System.IO.Packaging
spazio dei nomi è fornito da WindowsBase
. Quando aggiungi un riferimento, aggiungi WindowsBase
come riferimento invece di cercare di trovare System.IO.Packaging
.
È necessario aggiungere un riferimento a WindowsBase.dll. System.IO.Packaging si trova lì.
Vedi questo articolo per maggiori dettagli:
http://msdn.microsoft.com/en-us/library/system.io.packaging.package.aspx
System.IO.Packaging v4.0.30319 è in WindowsBase.dll v4.0.30319
Per Windows 10 forse potresti trovarlo qui
C: \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ WindowsBase \ v4.0_4.0.0.0__31bf3856ad364e35 \
Nel mio caso stavo usando un gestore di ashx. Affinché funzioni è necessario aggiungere l'assembly al progetto e al gestore:
<%@ WebHandler Language="C#" Class="UploadExcelFile2" %>
<%@ Assembly Name="WindowsBase, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
Alla fine ha funzionato per me, ho provato più volte ad aggiungere WindowsBase come riferimento (VS riavviato, anche la macchina riavviata) ma ancora non funzionava finché non l'ho aggiunto esplicitamente nella mia pagina aspx. Ho usato: <%@ Assembly Name="WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
poiché la dll a cui avevo fatto riferimento era la versione 4.0.