System.IO.Packaging


115

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

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

Ответы:


171

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


20
Вам даже не нужен пользовательский комментарий. Если вы посмотрите документацию по любому из реальных методов / объектов / и т. Д. в пространстве имен все говорят «Assembly: WindowBase.dll»
dlev

Когда я перешел по ссылке в ответе, я не понял, откуда мне нужно добавить библиотеку WindowsBase.Net. Я добавил его, и теперь у меня есть доступ к system.io.packaging. Так что спасибо за это, но не могли бы вы объяснить, чего я не вижу в том, чтобы получить доступ к system.io.packaging через библиотеку WindowsBase.Net?
Алан

На странице раньше были комментарии пользователей, в которых упоминалась WindowsBase. Похоже, Microsoft удалила комментарии из своих документов.
Педро

81

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

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

C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 \ WindowsBase.dll

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


4
Нет необходимости переходить к dll, она уже доступна в разделе «Сборки»> «Платформа».
Altaf Patel

@AltafPatel для меня он не появился, мне пришлось перейти к нему. Также убедитесь, что ваш проект настроен на компиляцию с соответствующей версией .NET указанного файла (в данном случае 4.0).
Дэвид Роджерс


4

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

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

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

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

+1 - я не заметил, что отдельные страницы отмечают сборку для использования. Я ожидал, что это будет на главной странице пространства имен, но поскольку они не всегда совпадают, имеет смысл взглянуть на классы, которые могут вам понадобиться.
Педро

3

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




0

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.