如何修复 .net 标准 2.0 项目中的“无法加载文件或程序集 System.IO.Packaging,版本 = 4.0.3.0”

问题描述 投票:0回答:2

我正在尝试处理一个word文档。为此,我安装了 DocumentFormat.OpenXml NuGet 包。它安装了以下依赖项:

  • 文档格式.OpenXml
  • 系统.IO.封装(4.5.0)
  • 系统.运行时.序列化

Here is the Screen shot

一旦到达我正在处理Word文档的代码。它抛出此错误“无法加载文件或程序集'System.IO.Packaging,Version=4.0.3.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a'或其依赖项之一。系统找不到指定的文件。”

到目前为止我已经尝试过以下方法:

  • 尝试手动将 System.IO.Packaging 的引用添加到 CSPROJ 文件,但这不起作用,我遇到了相同的错误。
  <ItemGroup>
    <PackageReference Include="DocumentFormat.OpenXml" Version="2.9.1" />
    <PackageReference Include="System.IO.Packaging" Version="4.5.0" />
    <PackageReference Include="System.Data.Common" Version="4.3.0" />
    <PackageReference Include="System.Data.SqlClient" Version="4.6.1" />
  </ItemGroup>
  • 我尝试添加“WindowsBase”nuget 包,但它显示冲突:
The type 'Package' exists in both 'System.IO.Packaging, Version=4.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and 'WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 

该错误抱怨版本 4.0.3.0,但 nuget 添加了版本 4.5.0 的 System.IO.Packaging DLL。我该如何解决这个问题?

c# winforms openxml .net-standard-2.0 system.io.packaging
2个回答
3
投票

尝试删除对

System.IO.Packaging (4.5.0)
的引用,然后尝试添加“WindowsBase”nuget 包

尝试

Update-Package –reinstall System.IO.Packaging


0
投票

我也有同样的问题。我从 nuget 安装了 WindowsBase。然后删除WindowsBase包。然后注意到 OpenXml 被以某种方式删除了。然后再次安装最新版本 2.20 的 OpenXml 并开始工作。 现在 IO.Packaging 位于 OpenXml 包下。

© www.soinside.com 2019 - 2024. All rights reserved.