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 屏幕或使用<cfdump var="#server.coldfusion#">
【参考方案1】:
使用dependency walker 之类的工具确保您正在复制 DocumentFormat.OpenXml.dll 正在使用的所有必需的链接 dll。另外不要忘记将此文件与您的输出一起复制。
【讨论】:
以上是关于Coldfusion OpenXml 错误:无法加载文件或程序集“DocumentFormat.OpenXml”的主要内容,如果未能解决你的问题,请参考以下文章
ColdFusion 10 CFFILE接受mimetype无法识别
导入excel时出错:无法初始化org.apache.poi.openxml4j.opc.internal.marshallers.ZipPackagePropertiesMarshaller类(示例
当我们在ColdFusion中使用API 调用(POST请求)将参数数量传递给服务器时,如何修复“POST请求超出”错误?