System.IO。包装


115

我的项目设置为.NET Framework 4.0。当我添加System.IO.Packaging,它说它不存在。当我尝试将其添加为对项目的引用时,它也不会显示。

如何添加System.IO.Packaging到我的C#项目中?

Answers:


171

根据此MSDN页面上的用户评论,您必须添加对WindowsBase .Net库的引用。


20
您甚至不需要用户评论。如果您查看文档中的任何实际方法/对象/等。在命名空间中,他们都说“ Assembly:WindowBase.dll”
dlev

当我转到答案中的链接时,我看不到如何添加WindowsBase.Net库。我添加了它,现在可以访问system.io.packaging。因此,谢谢您,但是您能解释一下我对通过WindowsBase.Net库访问system.io.packaging所没有的了解吗?
艾伦(Alan)

该页面曾经有提及WindowsBase的用户评论。看来Microsoft从其文档中删除了注释。
Pedro

81

对于带有.NET 4.0的Visual Studio 2010中的C#解决方案:

  1. 在项目的解决方案资源管理器中,右键单击“ 引用”,然后从上下文菜单中选择“ 添加引用 ”。
  2. 选择组件在左侧窗格中,然后单击浏览按钮旁边的文件名窗格钮近场。
  3. 浏览到.NET 4.0参考程序集,然后选择WindowsBase.dll。例如,在我的计算机(Windows 7,64位)上,完整路径为:

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

保存解决方案(尤其是如果您使用MSBuild从命令行进行编译),现在您应该可以将using System.IO.Packaging指令添加到.cs文件的顶部,而不会出现错误。


4
无需浏览到dll,它已经在Assemblies> Framework下可用。
Altaf Patel 2014年

@AltafPatel对我来说没有出现,我必须浏览到它。还要确保您的项目设置为使用所引用文件的匹配.NET版本进行编译(在本例中为4.0)。
David Rogers

5

我们也可以在Dot Net framework 3.5中添加WindowsBase.dll。我正在使用XP计算机,WindowsBase.dll的路径是

C:\ Program Files \参考程序集\ 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文件中添加:using,就可以了。

请注意,您可以在MSDN上任何类文档中看到此内容。例如,在中ZipPackage,它列出:

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

+1-我没有注意到个别页面记录了要使用的程序集。我本来希望在主名称空间页面上看到它,但是由于这些并不总是匹配的,因此查看您可能需要的类是有意义的。
佩德罗(Pedro)

3

System.IO.Packaging命名空间提供WindowsBase。添加参考时,请添加WindowsBase作为参考,而不要尝试查找System.IO.Packaging



2

WindowsBase.dll v4.0.30319中的System.IO.Packaging v4.0.30319

对于Windows 10,也许您可​​以在这里找到

C:\ Windows \ Microsoft.NET \ assembly \ 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版。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.