Respostas:
De acordo com um comentário do usuário nesta página do MSDN , você deve adicionar uma referência à biblioteca WindowsBase .Net.
Para uma solução C # no Visual Studio 2010 com .NET 4.0:
C: \ Arquivos de programas (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 \ WindowsBase.dll
Salve a solução (especialmente se você estiver compilando a partir da linha de comando com o MSBuild) e agora deverá ser capaz de adicionar a diretiva using System.IO.Packaging ao topo do seu arquivo .cs sem que um erro apareça.
Também podemos adicionar WindowsBase.dll no Dot Net framework 3.5. Estou usando uma máquina XP e o caminho para WindowsBase.dll é
C: \ Arquivos de programas \ Assemblies de referência \ Microsoft \ Framework \ .NETFramework \ v3.5 \ Profile \ Client \ WindowsBase.dll
Um exemplo de uso System.IO.packagingé dado aqui -
System.IO.Packagingé um namespace, não uma referência. A maioria (todas?) Das classes dentro do namespace, como ZipPackage , são implantadas em WindowsBase.dll.
Certifique-se de ter uma referência a WindowsBase.dll- se tiver, você pode apenas adicionar: using System.IO.Packaging;aos seus arquivos .cs, e você ficará bem.
Observe que você pode ver isso na documentação de qualquer classe no MSDN . Por exemplo, em ZipPackage, ele lista:
Namespace: System.IO.Packaging
Assembly: WindowsBase (in WindowsBase.dll)
O System.IO.Packagingnamespace é fornecido por WindowsBase. Ao adicionar uma referência, adicione WindowsBasecomo referência em vez de tentar encontrar System.IO.Packaging.
Você precisa adicionar uma referência ao WindowsBase.dll. System.IO.Packaging está localizado lá.
Veja este artigo para mais detalhes:
http://msdn.microsoft.com/en-us/library/system.io.packaging.package.aspx
System.IO.Packaging v4.0.30319 está em WindowsBase.dll v4.0.30319
Para Windows 10, talvez você possa encontrar aqui
C: \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ WindowsBase \ v4.0_4.0.0.0__31bf3856ad364e35 \
No meu caso, eu estava usando um manipulador ashx. Para que funcione, você precisa adicionar o assembly ao projeto e ao manipulador:
<%@ WebHandler Language="C#" Class="UploadExcelFile2" %>
<%@ Assembly Name="WindowsBase, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
Isso finalmente funcionou para mim, tentei várias vezes adicionar WindowsBase como referência (reiniciei o VS, reiniciei a máquina também), mas ainda não estava funcionando até que eu adicionei isso explicitamente em minha página aspx. Usei: <%@ Assembly Name="WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>como a dll que referi era a versão 4.0.