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.