System.IO.Packaging - PullRequest
       43

System.IO.Packaging

113 голосов
/ 31 августа 2011

Мой проект установлен на .NET Framework 4.0. Когда я добавляю System.IO.Packaging, он говорит, что его не существует. Он также не отображается, когда я пытаюсь добавить его в качестве ссылки на проект.

Как мне добавить System.IO.Packaging в мой проект C #?

Ответы [ 8 ]

168 голосов
/ 31 августа 2011

Согласно комментарию пользователя на этой странице MSDN , вы должны добавить ссылку на библиотеку WindowsBase .Net.

80 голосов
/ 19 октября 2011

Для решения C # в Visual Studio 2010 с .NET 4.0:

  1. В обозревателе решений вашего проекта щелкните правой кнопкой мыши Ссылки и выберите Добавить ссылки из контекстного меню.
  2. Выберите Сборки в левой панели, затем нажмите кнопку Обзор рядом с Имя файла поле рядом с основанием панели.
  3. Просмотрите справочные сборки .NET 4.0 и выберите WindowsBase.dll .Например, на моем компьютере (Windows 7, 64-разрядная версия) полный путь:

C: \ Program Files (x86) \ Справочные сборки \ Microsoft \ Framework \ .NETFramework \v4.0 \ WindowsBase.dll

Сохраните решение (особенно, если вы компилируете из командной строки с MSBuild), и теперь вы сможете добавить с использованием System.IO.Packaging директивы в начало вашего файла .cs без появления ошибки.

4 голосов
/ 05 декабря 2012

Мы также можем добавить WindowsBase.dll в Dot Net Framework 3.5.Я использую компьютер XP и путь для WindowsBase.dll:

C: \ Program Files \ Справочные сборки \ Microsoft \ Framework \ .NETFramework \ v3.5 \ Profile \ Client \ WindowsBase.dll

Здесь приведен пример использования System.IO.packaging -

Использование System.IO.Packaging для создания ZIP-файла

4 голосов
/ 31 августа 2011

System.IO.Packaging - это пространство имен, а не ссылка. Большинство (все?) Классов в пространстве имен, таких как ZipPackage , развернуты в WindowsBase.dll.

Убедитесь, что у вас есть ссылка на WindowsBase.dll - если вы это сделаете, вы можете просто добавить: используя System.IO.Packaging; к вашим файлам .cs, и все будет в порядке.

Обратите внимание, что вы можете увидеть это в документации для любого класса в MSDN . Например, в ZipPackage перечислены:

Namespace:  System.IO.Packaging
Assembly:  WindowsBase (in WindowsBase.dll)
3 голосов
/ 31 августа 2011

Вам необходимо добавить ссылку на WindowsBase.dll.System.IO.Packaging находится там.

См. Эту статью для более подробной информации:

http://msdn.microsoft.com/en-us/library/system.io.packaging.package.aspx

3 голосов
/ 31 августа 2011

Пространство имен System.IO.Packaging предоставляется WindowsBase. Когда вы добавляете ссылку, добавьте WindowsBase в качестве ссылки вместо попытки найти System.IO.Packaging.

2 голосов
/ 29 сентября 2017

System.IO.Packaging v4.0.30319 находится в WindowsBase.dll v4.0.30319

Для Windows 10, возможно, вы можете найти здесь

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

0 голосов
/ 16 февраля 2018

В моем случае я использовал обработчик 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.

...