安装Open XML 2.0

4
我正在尝试使用spreadsheetlight写入Excel文件,但显然spreadsheetlight使用的是XML 2.0,而我安装了2.5版本。我已经卸载了2.5版本,并将2.0引用添加到我的项目中,但仍然收到错误消息,告诉我我正在使用2.5版本。我的问题很简单:如何让编译器(?)使用2.0版本而不是2.5版本?
真诚地 阿克塞尔

1
你尝试过取消引用旧的SDK,在添加2.0后清理解决方案并重新构建它吗? - LakshmiNarayanan
我不确定你的“去引用”是什么意思?我已经在“添加引用”的“程序集”选项卡中取消了System.XML的标记,以便只标记新添加的内容,但这并没有帮助。清理解决方案不是我尝试过的事情,可以这样做而不会有数据丢失的风险吗? - user2950764
1
抱歉,我应该表述得更清楚。我指的是删除命名空间并重新构建。但是,我不认为添加System.XML会解决您的问题。如果您可以从引用中找到DocumentFormat.OpenXml dll并将其添加到您的解决方案中,在安装2.0 sdk后,我认为编译器不会抛出任何错误。请参考此链接,使用命名空间DocumentFormat.OpenXml - LakshmiNarayanan
移除命名空间?抱歉,我完全不明白。自从我使用了2.5版本(显然,SpreadSheetLight可以读取但不能使用2.5版本进行写入)以来,我已经引用了该命名空间“using DocumentFormat.OpenXml”。但是您的意思是我应该删除它(以及所有依赖于它的代码),重新构建项目,然后再次添加它吗? - user2950764
1
如果您已经参考了DocumentFormat.Openxml,那么您的应用程序可能仍然参考旧的sdk。尝试在添加对DocumentFormat.OpenXml的新引用后重新构建解决方案,我想这应该可以解决编译错误。 - LakshmiNarayanan
好的,这不是编译错误,而是当我尝试保存Excel文件时抛出的异常。但我应该尝试重新构建应用程序,看看是否可以解决问题! - user2950764
2个回答

6
所以问题似乎是Spreadsheetlight nuget包在Nuspec中缺少必需的依赖项规范。
安装命令:
Install-Package DocumentFormat.OpenXml -Version 1.0.0
如果您已经安装了DocumentFormat.OpenXml并且出现类似于“无法从程序集‘DocumentFormat.OpenXml,Version = 2.5.5631.0’中加载类型‘DocumentFormat.OpenXml.Spreadsheet.SmartTags’”的异常,请使用以下命令卸载:
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 使Spreadsheetlight工作


2

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

在这里,您将找到包含所需程序集的NuGet软件包链接


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接