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 ได้หรือไม่
Alan

หน้านี้เคยมีความคิดเห็นของผู้ใช้ซึ่งกล่าวถึง WindowsBase ดูเหมือนว่า Microsoft ลบความคิดเห็นออกจากเอกสารของพวกเขา
Pedro

81

สำหรับโซลูชัน C # ใน Visual Studio 2010 ที่มี. NET 4.0:

  1. ใน Solution Explorer ของโครงการของคุณให้คลิกขวาที่การอ้างอิงและเลือกเพิ่มการอ้างอิงจากเมนูบริบท
  2. เลือกประกอบในช่องด้านซ้ายมือแล้วคลิกเรียกดูปุ่มถัดจากชื่อแฟ้มข้อมูลที่อยู่ใกล้กระดุมของบานหน้าต่างที่
  3. เรียกดูเพื่อ .NET 4.0 ประกอบการอ้างอิงและเลือกWindowsBase.dll ตัวอย่างเช่นบนเครื่องของฉัน (Windows 7, 64-bit) เส้นทางที่สมบูรณ์คือ:

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

บันทึกโซลูชัน (โดยเฉพาะอย่างยิ่งหากคุณกำลังรวบรวมจากบรรทัดคำสั่งด้วย MSBuild) และตอนนี้คุณควรจะสามารถเพิ่มคำสั่งโดยใช้ System.IO.Packagingที่ด้านบนของไฟล์. cs ของคุณโดยไม่มีข้อผิดพลาดปรากฏขึ้น


4
ไม่จำเป็นต้องเรียกดู dll มีอยู่แล้วใน Assemblies> Framework
Altaf Patel

@AltafPatel สำหรับฉันมันไม่ปรากฏขึ้นฉันต้องเรียกดูมัน ตรวจสอบให้แน่ใจด้วยว่าโปรเจ็กต์ของคุณถูกตั้งค่าให้คอมไพล์กับไฟล์อ้างอิงเวอร์ชัน. NET ที่ตรงกัน (ในกรณีนี้คือ 4.0)
David Rogers

5

เราสามารถเพิ่ม WindowsBase.dll ใน Dot Net framework 3.5 ได้เช่นกัน ฉันใช้เครื่อง XP และ Path สำหรับ WindowsBase.dll คือ

C: \ Program Files \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v3.5 \ Profile \ Client \ 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 - ฉันไม่ได้สังเกตว่าแต่ละหน้าจดบันทึกการประกอบที่จะใช้ ฉันคาดหวังไว้ในหน้าเนมสเปซหลัก แต่เนื่องจากสิ่งเหล่านี้ไม่ได้ตรงกันเสมอไปจึงควรดูคลาสที่คุณอาจต้องการ
Pedro

3

System.IO.Packagingnamespace WindowsBaseให้บริการโดย เมื่อคุณเพิ่มการอ้างอิงเพิ่มเป็นข้อมูลอ้างอิงแทนการพยายามที่จะหาWindowsBaseSystem.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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.