我是努戈SpreadsheetLight。为了随后使用它,我需要添加以下用法:
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Spreadsheet;
using SpreadsheetLight;要识别前两个("DocumentFormat"),我还需要NuGet微软的"Open“
我得到了最新版本的2.5
然而,即使如此,我还是得到了一个错误的信息,认为需要引用它:
类型'DocumentFormat.OpenXml.Spreadsheet.InlineString‘是在未引用的程序集中定义的。必须添加对程序集'DocumentFormat.OpenXml,Version=2.0.5022.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35‘的引用。
这一行SpreadsheetLight代码触发了这个msg:
sl.SetCellValue("A1", true); // "sl" is an SLDocument因此,我从我的项目中删除了NuGot (Version2.6.0.0,RuntimeVersionv4.0.30319)的引用,然后通过浏览C:\Program (X86)\Open\V2.0\lib并选择"DocumentFormat.OpenXml.dll“将该引用添加回
然后,我收到了一个编译器警告:
发现同一依赖程序集的不同版本之间的冲突。请在项目文件中将"AutoGenerateBindingRedirects“属性设置为true。有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkId=294190。
我注意到我从文件系统中添加的DLL是2.5.5631.0版本,而作为参考方式安装的DLL是2.6.0.0运行时版本也不同(v4.0.30319是由NuGetting“”安装的,但我手动添加的DLL版本是2.5.5631.0,运行时版本v4.0.30319 )。
根据这,我认为我应该通过将<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>更改为true来编辑.csproj文件,但是AutoGenerateBindingRedirects并不存在。
我不知道是否应该添加它,如果应该的话(在其中的“块”)。我宁愿安全地玩它,并缓解警告引擎。如何确保OpenXml程序集不会导致冲突?
发布于 2016-03-22 22:28:32
缓解这一警告(让它驶向日落)是将DocumentFormat.OpenXML版本降级为2.0.5022.0版本(运行时版本v2.0.50727)的问题。
我发现这是因为这段代码来自"Hello“示例这里。
SLDocument sl = new SLDocument();
sl.SetCellValue("A1", true);
. . ....failed上的第一行,“无法加载文件或程序集'DocumentFormat.OpenXml,Version=2.0.5022.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35‘或其依赖项之一”
因此,由于它需要2.0版本,所以我删除了该文件的2.5.5631.0,然后删除了NuGot "OpenXML SDK2.0“。即版本2.0.5022.0和运行时版本v2.0.50727
所以:毕竟不需要用神秘的布尔属性来更新项目文件。
这给了我一些扇子,尽管,不得不使用一个较旧的版本的一个程序集。
更新
DocumentFormat.OpenXml需要“回溯”,这一点得到了这里的证实。
发布于 2016-04-30 22:18:51
我们可以通过将DocumentFormat.OpenXml从2.0.5022.0版本重定向到更新的版本,例如2.5.5631.0版本来解决这个问题。要做到这一点,应该在web.config中添加新的<dependentAssembly>项:
<configuration>
...
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
...
<dependentAssembly>
<assemblyIdentity name="DocumentFormat.OpenXml" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-2.0.5022.0" newVersion="2.5.5631.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
...
<configuration>发布于 2019-01-23 16:22:10
Spreadsheetlight适用于3.4.5版本后的DocumentFormat.OpenXml 2.5:
版本3.4.5 - SmartTags现在不再考虑了(现在不太聪明了,是吗?;)。这意味着代码现在已经为OpenXMLSDK2.5做好了准备!是的,它现在适用于OpenXMLSDK2.5(我提到过吗?lol)。
https://stackoverflow.com/questions/36165618
复制相似问题