2011-08-31 5 views
106

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.System.IO.Packaging

Come è possibile aggiungere System.IO.Packaging al mio progetto C#?

risposta

158

In base a un commento utente su this MSDN page, è necessario aggiungere un riferimento alla libreria .Net di WindowsBase.

+19

non hanno nemmeno bisogno di un commento dell'utente. Se si guardano i documenti per uno qualsiasi dei metodi/oggetti/ecc. nel namespace, tutti dicono "Assembly: WindowBase.dll" – dlev

4

System.IO.Packaging è uno spazio dei nomi, non un riferimento. La maggior parte (tutte?) Delle classi all'interno dello spazio dei nomi, ad esempio ZipPackage, vengono distribuite in WindowsBase.dll.

Assicurati di avere un riferimento a WindowsBase.dll - se lo fai, puoi semplicemente aggiungere: utilizzando System.IO.Packaging; ai tuoi file .cs, e starai bene.

Nota che è possibile visualizzarlo nello documentation for any class on MSDN. Per esempio, in ZipPackage, elenca:

Namespace: System.IO.Packaging 
Assembly: WindowsBase (in WindowsBase.dll) 
+0

+1 - Non ho notato che le singole pagine notano l'assembly da usare. Mi sarei aspettato nella pagina dello spazio dei nomi principale, ma dato che non sempre coincidono, è logico guardare le classi di cui potresti aver bisogno. – Pedro

3

Il System.IO.Packaging spazio dei nomi è fornito da WindowsBase. Quando aggiungi un riferimento, aggiungi WindowsBase come riferimento invece di provare a trovare System.IO.Packaging.

77

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

  1. In Esplora soluzioni del progetto, fare clic destro su Riferimenti e selezionare Aggiungi riferimenti dal menu di scelta rapida.
  2. Select Assemblee nel riquadro a sinistra, quindi fare clic su Sfoglia tasto accanto al Nome file campo vicino al bottone del riquadro.
  3. Individuare i gruppi di riferimento .NET 4.0 e selezionare WindowsBase.dll. Per esempio, sulla mia macchina (Windows 7, 64 bit) il percorso completo è:

C: \ Program Files (x86) \ Riferimento Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 \ WindowsBase.dll

Salva la soluzione (soprattutto se si sta compilando dalla riga di comando con MSBuild) e ora si dovrebbe essere in grado di aggiungere il direttiva using System.IO.Packaging al parte superiore del tuo file .cs senza che venga visualizzato un errore.

+4

Non c'è bisogno di navigare in dll, è già disponibile in Assemblies> Framework. –

+0

@AltafPatel per me non si è presentato, ho dovuto sfogliarlo. Assicurarsi inoltre che il progetto sia impostato per la compilazione con la versione .NET corrispondente del file di riferimento (in questo caso 4.0). –

4

Possiamo anche aggiungere WindowsBase.dll in DotNet framework 3.5. Sto usando la macchina XP e Path per WindowsBase.dll è

C: \ Program Files \ Riferimento Assemblies Microsoft \ Framework \ .NETFramework \ v3.5 \ Profilo \ Client \ WindowsBase.dll

Esempio \ per l'utilizzo di System.IO.packaging è dato qui -

Using System.IO.Packaging to generate a ZIP file

0

System.IO.Packaging v4.0.30319 è in WindowsBase.dll v4.0.30319

Per Windows 10 forse si potrebbe trovare qui

C: \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ WindowsBase \ v4.0_4.0.0.0__31bf3856ad364e35 \

0

Nel mio caso ho stava usando un gestore ASHX . Per farlo funzionare è necessario aggiungere l'assembly al progetto e il gestore:

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