System.IO. Упаковка


115

У мене проект встановлений на .NET Framework 4.0. Коли я додаю System.IO.Packaging, він говорить, що його не існує. Він також не відображається, коли я намагаюся додати його як посилання на проект.

Як додати System.IO.Packagingпроект C #?

Відповіді:


171

Відповідно до коментаря користувача на цій сторінці MSDN , ви повинні додати посилання на бібліотеку .Net WindowsBase.


20
Вам навіть коментар користувача не потрібен. Якщо ви подивитеся на документи для будь-якого з фактичних методів / об’єктів / тощо. у просторі імен всі кажуть "Асамблея: WindowBase.dll"
день

Коли я перейшов до посилання у відповіді, я не побачив, як би я міг додати бібліотеку 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: \ програмні файли (x86) \ довідкові збори \ Microsoft \ Framework \ .NETFramework \ v4.0 \ WindowsBase.dll

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


4
До dll не потрібно переглядати, це вже доступно в Асамблеї> Framework.
Альтаф Патель

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

5

Також ми можемо додати WindowsBase.dll в Dot Net Framework 3.5. Я використовую машину XP і Path for WindowsBase.dll є

C: \ програмні файли \ довідкові збори \ Microsoft \ Framework \ .NETFramework \ v3.5 \ профіль \ клієнт \ WindowsBase.dll

Приклад використання System.IO.packagingнаведено тут -

Використання System.IO.Packaging для створення ZIP-файлу


4

System.IO.Packagingце простір імен, а не посилання. Більшість (усіх?) Класів у просторі імен, наприклад, ZipPackage , розгорнуто в WindowsBase.dll.

Переконайтеся, що у вас є посилання на WindowsBase.dll- якщо ви це зробите, ви можете просто додати: використовуючи 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.



2

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 \


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.