无法加载文件或程序集

问题描述 投票:0回答:1

我想存档DESADV的pdf版本,因此我通过Biztalk自定义XSLT映射从原始XML文件创建了一个HTML页面,并通过Pechkin对其进行了渲染。已同步为pdf(wkhtmltopdf的包装器。)>]

这在我的解决方案中就像一个魅力,但是一旦我尝试将解决方案部署到QA System上,biztalk就会不断地抱怨说找不到Pechkin库。通过“ gacutil -I”部署库,我什至从源代码构建它,并使用我们的Biztalk签名密钥对其进行签名,并将构建模式从x86更改为“任何CPU”。我将所有需要的dll添加到了Helper类中,并手动对其进行了部署,但是BizTalk无法访问该库。请帮助我,我已经尝试了好几天没有任何进展,这让我发疯。我什至很难调试为什么它不能加载dll。

我不太熟悉BizTalk,并且一直认为BizTalk可以访问GAC中的DLL ...

我还构建了一个控制台应用程序,该应用程序直接引用GAC_MSIL中的DLL,并且该应用程序使用我在BizTalk Solutions帮助程序类中编写的确切代码呈现html。

enter image description here

我想存档DESADV的pdf版本,因此我通过Biztalk自定义XSLT映射从原始XML文件创建了一个HTML页面,并通过Pechkin渲染了它。同步到pdf(用于...的包装器) [

即使这也不是一个真正的答案,但它以某种方式解决了问题。

正如已经有人提到的那样,DLL具有对其他库的依赖关系。结合起来,我无法将DLL部署到gac,并且对主题没有更深入的了解,我只是选择了另一个lib,因为这已经花费了很多时间。 MEH。

我选择共享软件https://selectpdf.com/community-edition/,他们有一个简单易用的nuget软件包。 (我喜欢)。总体渲染速度不是很好,但是最终,保持BizTalk与您的项目的兼容性更为重要。

我有人偶然发现:1.为您的消息XML创建XSL映射,并将其映射到一些精美的HTML布局2.编排中来自BizTalk消息的Xtract XML3.使用助手解决方案渲染PDF

我的帮助程序类代码:

您需要从“引用”->“添加引用”->“组件”->“扩展名”中添加“ Microsoft.XLANGs.BaseTypes”引用,它才能正常工作。

using System; using Microsoft.XLANGs.BaseTypes; using System.IO; namespace BIS.CLC.DESADV.Helper { public class HtmlHelper { public string xTractStringFromMessage(XLANGMessage message) { string retVal = string.Empty; try { using (var reader = new StreamReader(message[0].RetrieveAs(typeof(Stream)) as Stream)) { retVal = reader.ReadToEnd(); } } catch (Exception ex) { Exception logex = new Exception("BIS.CLC.DESADV.Helper.HtmlHelper.xtractStringFromMsg: string extraction failed" + ex.Message.ToString() + ex.InnerException.ToString()); BIS.Common.Helper.StaticClass.writeEventLog_BizTalk(logex.Message.ToString(), "BisLog"); } finally { message.Dispose(); } return retVal; } public void renderPDFfromHTML(string html, string targetPath) { try { //do things SelectPdf.HtmlToPdf converter = new SelectPdf.HtmlToPdf(); SelectPdf.PdfDocument doc = converter.ConvertHtmlString(html); doc.Save(new Uri(targetPath).LocalPath.Replace(".XML", ".PDF")); doc.Close(); } catch (Exception ex) { Exception logex = new Exception("BIS.CLC.DESADV.Helper.HtmlHelper.renderPDFfromHTML: render pdf failed " + ex.Message.ToString() + ex.InnerException.ToString()); BIS.Common.Helper.StaticClass.writeEventLog_BizTalk(logex.Message.ToString(), "BisLog"); throw ex; } } } }

biztalk biztalk-2013
1个回答
0
投票
即使这也不是一个真正的答案,但它以某种方式解决了问题。
© www.soinside.com 2019 - 2024. All rights reserved.