Ответы:
Согласно комментарию пользователя на этой странице MSDN , вам необходимо добавить ссылку на библиотеку WindowsBase .Net.
Для решения C # в Visual Studio 2010 с .NET 4.0:
C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 \ WindowsBase.dll
Сохраните решение (особенно если вы компилируете из командной строки с помощью MSBuild), и теперь вы сможете добавить директиву using System.IO.Packaging в начало файла .cs без появления ошибки.
Мы также можем добавить WindowsBase.dll в Dot Net framework 3.5. Я использую компьютер XP, а путь для WindowsBase.dll -
C: \ Program Files \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v3.5 \ Profile \ Client \ WindowsBase.dll
Пример использования System.IO.packaging
приведен здесь -
System.IO.Packaging
это пространство имен, а не ссылка. Большинство (все?) Классов в пространстве имен, например ZipPackage , развернуты в WindowsBase.dll
.
Убедитесь, что у вас есть ссылка на WindowsBase.dll
- если да, вы можете просто добавить: using System.IO.Packaging;
в свои файлы .cs, и все будет в порядке.
Обратите внимание, что вы можете увидеть это в документации для любого класса в MSDN . Например, в ZipPackage
нем перечислены:
Namespace: System.IO.Packaging
Assembly: WindowsBase (in WindowsBase.dll)
Пространство System.IO.Packaging
имен предоставляется WindowsBase
. Когда вы добавляете ссылку, добавляйте ее WindowsBase
как ссылку, а не пытайтесь найти System.IO.Packaging
.
Вам нужно добавить ссылку на WindowsBase.dll. System.IO.Packaging находится там.
См. Эту статью для получения более подробной информации:
http://msdn.microsoft.com/en-us/library/system.io.packaging.package.aspx
System.IO.Packaging v4.0.30319 находится в WindowsBase.dll v4.0.30319
Для Windows 10 вы могли бы найти здесь
C: \ Windows \ Microsoft.NET \ сборка \ GAC_MSIL \ WindowsBase \ v4.0_4.0.0.0__31bf3856ad364e35 \
В моем случае я использовал обработчик ashx. Для работы нужно добавить в проект сборку и обработчик:
<%@ WebHandler Language="C#" Class="UploadExcelFile2" %>
<%@ Assembly Name="WindowsBase, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
Это, наконец, сработало для меня, несколько раз пытался добавить WindowsBase в качестве ссылки (перезапущенный VS, перезапущенный компьютер тоже), но все равно он не работал, пока я не добавил это явно на своей странице aspx. Я использовал: <%@ Assembly Name="WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
поскольку dll, на которую я ссылался, была версии 4.0.