Coldfusion OpenXml 错误:无法加载文件或程序集“DocumentFormat.OpenXml”

Posted

技术标签:

【中文标题】Coldfusion OpenXml 错误:无法加载文件或程序集“DocumentFormat.OpenXml”【英文标题】:Coldfusion OpenXml Error: Could not load file or assembly 'DocumentFormat.OpenXml' 【发布时间】:2014-12-01 09:11:57 【问题描述】:

我是 .net 编码员,我对 ColdFusion 真的很陌生。我写了一个自动生成发票的 .dll 库。我需要使用 ColdFusion 应用程序中的库。我已经成功地将库中的类加载为coldfusion对象,因为我可以调用这些方法。但是,我的班级中有一种方法使用 WordprocessingDocument,它是 DocumentFormat.OpenXml.Packaging 的一个类。我实际上收到了这个错误:

System.IO.FileNotFoundException:无法加载文件或程序集 'DocumentFormat.OpenXml,版本=2.5.5631.0,文化=中性, PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。这 系统找不到指定的文件。文件名: 'DocumentFormat.OpenXml,版本=2.5.5631.0,文化=中性, PublicKeyToken=31bf3856ad364e35' 在 InvoiceLibrary.DocumentHandler.ConvertDocumentToDOCX(字符串文件) 在 InvoiceLibrary.DocumentHandler.ProcessDocument()

我已经导入了 DocumentFormat.OpenXml.dll,WindowsBase.dll 文件也是如此

<cfObject type=".NET" name="WordprocessingDocument"
     class="DocumentFormat.OpenXml.Packaging.WordprocessingDocument" 
     assembly="C:\Users\mydocs\Documents\Visual Studio 2012\Projects\InvoiceGenerator\InvoiceLibrary\bin\Release\DocumentFormat.OpenXml.dll,C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\WindowsBase.dll">

我需要您指导我做错了什么或我在这里遗漏了什么?

【问题讨论】:

哦,多亏了那个 Leigh!是的,现在看起来好多了:) 欢迎 :) 不幸的是,我没有答案,但您检查过 jnbridge(用于 .net 互操作)日志吗?见cf_install/jnbridge/error.log有时该日志包含有关 .net 错误的其他详细信息。 不,我还没有。我现在就试试。我已经被这个问题困扰了很长一段时间了。吸球!我可以成功调用 .dll 库中的方法,但是这个实现 WordprocessingDocument 类的特定方法是它失败的地方。我确定我已经包含了所有依赖项。可能是类加载器问题吗?不管怎样,谢谢你的建议,我马上去看看 您是否在 every createObject 调用中包含了所有依赖项?省略一些可能会导致该问题。 可能是类加载器的问题 可能,这有时是“找不到方法..”错误的原因,但很难说。 如果您喜欢冒险,可以尝试使用generating the proxies yourself 和\jnbridge 目录中的内置工具。另外,如果相关的话,您的完整 CF 版本是什么?检查 CF Admin 屏幕或使用&lt;cfdump var="#server.coldfusion#"&gt; 【参考方案1】:

使用dependency walker 之类的工具确保您正在复制 DocumentFormat.OpenXml.dll 正在使用的所有必需的链接 dll。另外不要忘记将此文件与您的输出一起复制。

【讨论】:

以上是关于Coldfusion OpenXml 错误:无法加载文件或程序集“DocumentFormat.OpenXml”的主要内容,如果未能解决你的问题,请参考以下文章

ColdFusion 10 CFFILE接受mimetype无法识别

导入excel时出错:无法初始化org.apache.poi.openxml4j.opc.internal.marshallers.ZipPackagePropertiesMarshaller类(示例

使用openxml sdk 操作word 无法刷新域信息

ColdFusion 数据源未正确连接

当我们在ColdFusion中使用API 调用(POST请求)将参数数量传递给服务器时,如何修复“POST请求超出”错误?

找不到Coldfusion 9 Datasource