【问题标题】:Install Open XML 2.0安装 Open XML 2.0
【发布时间】:2014-04-07 11:26:48
【问题描述】:

我正在尝试使用电子表格灯写入 excel 文件,但显然电子表格灯使用 XML 2.0 并且我安装了 2.5。我已取消安装 2.5 版本并已将 2.0 引用添加到我的项目中,但我仍然收到一条错误消息,告诉我我正在使用 2.5 版本。我的问题很简单:如何让编译器(?)使用 2.0 版本而不是 2.5 版本?

真诚的 阿克塞尔

【问题讨论】:

  • 您是否尝试取消引用旧的 sdk、清理解决方案并在添加 2.0 后重建它?
  • 我不确定你的意思是我应该取消引用?我在“添加引用”的“程序集”选项卡中取消了 System.XML 的标记,因此只标记了我添加的新内容,但这没有帮助。清理解决方案不是我尝试过的事情,是否可以这样做而不冒丢失数据的风险?
  • 对不起应该更清楚。我指的是删除命名空间并重建。但是,我认为添加 System.XML 不会解决您的问题。如果您可以从参考资料中找到DocumentFormat.OpenXml dll 并将其添加到您的解决方案中,那么在安装 2.0 sdk 后,我认为编译器不会抛出任何错误。使用命名空间DocumentFormat.OpenXml引用this
  • 删除命名空间?对不起,但我根本不关注。因为我使用了 2.5 版本(显然,SpreadSheetLight 可以读取但不能使用 2.5 写入),所以我已经引用了该命名空间“使用 DocumentFormat.OpenXml”。但是你的意思是我应该删除它(以及依赖它的所有代码),重建项目然后再次添加它?
  • 如果您已经引用过 DocumentFormat.Openxml,那么您的应用程序可能仍然引用旧的 sdk。在添加对 DocumentFormat.OpenXml 的新引用后尝试重建解决方案,我想这应该可以解决编译错误。

标签: c# xml openxml-sdk nuget-package spreadsheetlight


【解决方案1】:

所以问题似乎是 Spreadsheetlight nuget 包在 Nuspec 中缺少必需的依赖项规范。

Install-Package DocumentFormat.OpenXml -Version 1.0.0


如果您已经安装了 DocumentFormat.OpenXml 并且遇到类似于 Could not load type ‘DocumentFormat.OpenXml.Spreadsheet.SmartTags’ from assembly ‘DocumentFormat.OpenXml, Version=2.5.5631.0 的异常

UNinstall-Package DocumentFormat.OpenXml

如果您有程序集绑定重定向,请检查您的配置文件

  <dependentAssembly>
    <assemblyIdentity name="DocumentFormat.OpenXml" publicKeyToken="31bf3856ad364e35"... />
    <bindingRedirect oldVersion="0.0.0.0-2.5.5631.0" newVersion="2.5.5631.0" />
  </dependentAssembly>

删除这个。

现在安装具体版本:

Install-Package DocumentFormat.OpenXml -Version 1.0.0

来源:EricTummers.com Get Spreadsheetlight working

【讨论】:

    【解决方案2】:

    当前的 SpreadsheetLight 3.4 版需要 Open XML SDK v2.0 程序集。

    Here 你会在 NuGet 包中找到 link,其中包含所需的程序集。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-10
      • 2020-06-20
      • 1970-01-01
      • 1970-01-01
      • 2013-03-16
      相关资源
      最近更新 更多