System.IO.Packaging


115

Il mio progetto è impostato su .NET Framework 4.0. Quando aggiungo System.IO.Packaging, dice che non esiste. Inoltre non viene visualizzato quando provo ad aggiungerlo come riferimento al progetto.

Come posso aggiungere System.IO.Packagingal mio progetto C #?

Risposte:


171

Secondo un commento dell'utente su questa pagina MSDN , è necessario aggiungere un riferimento alla libreria WindowsBase .Net.


20
Non hai nemmeno bisogno di un commento utente. Se guardi la documentazione per uno qualsiasi dei metodi / oggetti / ecc. nello spazio dei nomi, dicono tutti "Assembly: WindowBase.dll"
dlev

Quando sono andato al collegamento nella risposta, non ho visto come avrei saputo aggiungere la libreria WindowsBase.Net. L'ho aggiunto e ora ho accesso a system.io.packaging. Quindi grazie per questo, ma potresti spiegare cosa non vedo sul sapere per accedere a system.io.packaging tramite la libreria WindowsBase.Net?
Alan

La pagina aveva i commenti degli utenti che menzionavano WindowsBase. Sembra che Microsoft abbia rimosso i commenti dai propri documenti.
Pedro

81

Per una soluzione C # in Visual Studio 2010 con .NET 4.0:

  1. Nell'Esplora soluzioni del progetto, fare clic con il pulsante destro del mouse su Riferimenti e selezionare Aggiungi riferimenti dal menu di scelta rapida.
  2. Selezionare Assiemi nel riquadro a sinistra, quindi fare clic sul pulsante Sfoglia accanto al campo Nome file vicino alla parte inferiore del riquadro.
  3. Passare agli assembly di riferimento .NET 4.0 e selezionare WindowsBase.dll . Ad esempio, sulla mia macchina (Windows 7, 64 bit) il percorso completo è:

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.


4
Non è necessario passare a dll, è già disponibile in Assembly> Framework.
Altaf Patel

@AltafPatel per me non è stato visualizzato, ho dovuto sfogliarlo. Assicurati inoltre che il tuo progetto sia impostato per la compilazione con la versione .NET corrispondente del file di riferimento (in questo caso 4.0).
David Rogers

5

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:

Utilizzo di System.IO.Packaging per generare un file ZIP


4

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)

+1 - Non ho notato che le singole pagine annotano l'assembly da utilizzare. Me lo sarei aspettato sulla pagina principale dello spazio dei nomi, ma poiché quelli non sempre corrispondono, ha senso guardare le classi di cui potresti aver bisogno.
Pedro

3

Lo System.IO.Packagingspazio dei nomi è fornito da WindowsBase. Quando aggiungi un riferimento, aggiungi WindowsBasecome riferimento invece di cercare di trovare System.IO.Packaging.



2

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 \


0

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.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.