2011-08-31 11 views
106

Tengo mi proyecto configurado en .NET Framework 4.0. Cuando agrego System.IO.Packaging, dice que no existe. Tampoco aparece cuando intento agregarlo como referencia al proyecto.System.IO.Packaging

¿Cómo puedo agregar System.IO.Packaging a mi proyecto C#?

Respuesta

158

Según un comentario del usuario en this MSDN page, debe agregar una referencia a la biblioteca .Net de WindowsBase.

+19

Ni siquiera necesita un comentario del usuario. Si mira los documentos para cualquiera de los métodos/objetos/etc. reales. en el espacio de nombres, todos dicen "Assembly: WindowBase.dll" – dlev

4

System.IO.Packaging es un espacio de nombres, no una referencia. La mayoría (¿todas?) De las clases dentro del espacio de nombres, como ZipPackage, se implementan en WindowsBase.dll.

Asegúrese de tener una referencia a WindowsBase.dll - si lo hace, simplemente puede agregar: usando System.IO.Packaging; a sus archivos .cs, y todo irá bien.

Tenga en cuenta que puede ver esto en el documentation for any class on MSDN. Por ejemplo, en ZipPackage, enumera:

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

+1 - No noté que las páginas individuales notan el ensamblaje a usar. Lo habría esperado en la página principal del espacio de nombres, pero como esos no siempre coinciden, tiene sentido mirar las clases que pueda necesitar. – Pedro

3

El espacio de nombres System.IO.Packaging es proporcionado por WindowsBase. Cuando agrega una referencia, agregue WindowsBase como referencia en lugar de tratar de encontrar System.IO.Packaging.

77

Para una solución de C# en Visual Studio 2010 con .NET 4.0:

  1. En el Explorador de soluciones de su proyecto, haga clic en Referencias y seleccione Agregar referencias desde el menú contextual.
  2. Seleccione Asambleas en el panel de la izquierda, haga clic en el botón Navegar junto al campo Nombre de archivo cerca de la parte de abajo del panel.
  3. Examine los ensamblados de referencia de .NET 4.0 y seleccione WindowsBase.dll. Por ejemplo, en mi máquina (Windows 7, 64 bits) es la ruta completa:

C: \ Archivos de programa (x86) \ Referencia Asambleas \ Microsoft \ Framework \ .NETFramework \ v4.0 \ WindowsBase.dll

Guardar la solución (especialmente si está compilando desde la línea de comandos con MSBuild) y ahora debería ser capaz de añadir la directiva using a la System.IO.Packaging la parte superior de su archivo .cs sin que aparezca un error.

+4

No es necesario navegar a dll, ya está disponible en Assemblies> Framework. –

+0

@AltafPatel para mí no apareció, tuve que buscarlo. También asegúrese de que su proyecto esté configurado para compilarse con la versión .NET correspondiente del archivo al que se hace referencia (en este caso 4.0). –

4

También podemos agregar WindowsBase.dll en Dot Net framework 3.5. Estoy usando la máquina XP y Path para WindowsBase.DLL es

C: \ Archivos de programa \ Referencia Asambleas \ Microsoft \ Framework \ .NETFramework \ v3.5 \ Perfil \ Client \ WindowsBase.dll

Ejemplo de uso de System.IO.packaging se da aquí -

Using System.IO.Packaging to generate a ZIP file

0

System.IO.Packaging v4.0.30319 es en WindowsBase.dll v4.0.30319

Para Windows 10 tal vez usted podría encontrar aquí

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

0

En mi caso, yo estaba usando un controlador ashx . Para que funcione, debe agregar el ensamblado al proyecto y al controlador:

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