System.IO.Packaging

115

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.

¿Cómo puedo agregar System.IO.Packaginga mi proyecto de C #?

Pato
fuente

Respuestas:

171

Según un comentario de un usuario en esta página de MSDN , debe agregar una referencia a la biblioteca .Net de WindowsBase.

Pedro
fuente
20
Ni siquiera necesitas un comentario de usuario. Si busca en los documentos cualquiera de los métodos / objetos / etc. reales. en el espacio de nombres, todos dicen "Assembly: WindowBase.dll"
dlev
Cuando fui al enlace en la respuesta, no vi cómo sabría agregar la biblioteca WindowsBase.Net. Lo agregué y ahora tengo acceso a system.io.packaging. Entonces, gracias por eso, pero ¿podría explicar lo que no veo acerca de saber cómo acceder al system.io.packaging a través de la biblioteca WindowsBase.Net?
Alan
La página solía tener comentarios de usuarios que mencionaban WindowsBase. Parece que Microsoft eliminó los comentarios de sus documentos.
Pedro
81

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 con el botón derecho en Referencias y seleccione Agregar referencias en el menú contextual.
  2. Seleccione Ensamblados en el panel de la izquierda, luego haga clic en el botón Examinar junto al campo Nombre de archivo cerca de la parte inferior del panel.
  3. Busque ensamblados de referencia de .NET 4.0 y seleccione WindowsBase.dll . Por ejemplo, en mi máquina (Windows 7, 64 bits), la ruta completa es:

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

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

Steve HHH
fuente
4
No es necesario buscar dll, ya está disponible en Ensamblados> Framework.
Altaf Patel
@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 de referencia (en este caso 4.0).
David Rogers
5

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

C: \ Archivos de programa \ Ensamblados de referencia \ Microsoft \ Framework \ .NETFramework \ v3.5 \ Profile \ Client \ WindowsBase.dll

System.IO.packagingAquí se da un ejemplo de uso :

Usando System.IO.Packaging para generar un archivo ZIP

Tapash
fuente
4

System.IO.Packaginges 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 la tiene, puede agregar: using System.IO.Packaging;a sus archivos .cs y estará bien.

Tenga en cuenta que puede ver esto en la documentación de cualquier clase en MSDN . Por ejemplo, en ZipPackage, enumera:

Namespace:  System.IO.Packaging
Assembly:  WindowsBase (in WindowsBase.dll)
Reed Copsey
fuente
+1: no noté que las páginas individuales indican el ensamblaje que se debe usar. Lo hubiera esperado en la página principal del espacio de nombres, pero como no siempre coinciden, tiene sentido mirar las clases que podría necesitar.
Pedro
3

El System.IO.Packagingespacio de nombres lo proporciona WindowsBase. Cuando agregue una referencia, agréguela WindowsBasecomo referencia en lugar de intentar buscar System.IO.Packaging.

Matthew Abbott
fuente
2

System.IO.Packaging v4.0.30319 está en WindowsBase.dll v4.0.30319

Para Windows 10, tal vez puedas encontrarlo aquí.

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

Arnonthawajjana Chainarong
fuente
0

En mi caso, 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" %>

Esto finalmente funcionó para mí, intenté varias veces agregar WindowsBase como referencia (reinició VS, reinició la máquina también) pero aún así no funcionaba hasta que agregué esto explícitamente en mi página aspx. Usé: <%@ Assembly Name="WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>ya que el dll al que había hecho referencia era la versión 4.0.

Lanklaas
fuente