kri*_*ian 3 c# asp.net-mvc gecko xulrunner abcpdf
我正在尝试更新我(以前工作)的pdf创建Web应用程序以使用ABCpdf.NET和ABCpdf.NET Gecko Runtime nuget包.
我已经安装了两个软件包(都是版本8.1.1.6)但是当我运行我的应用程序时,我得到以下WebSupergoo.ABCpdf8.Internal.PDFException:
无法添加HTML:Gecko引擎遇到了无法恢复的错误.可能的原因:XULRunner文件夹已损坏或来自另一版本的ABCpdf.
在安装了ABCpdf.NET Gecko Runtime软件包之后,我得到了一个对话框,告诉我需要手动将XULRunner文件夹复制到我的输出目录中.为了实现这一点,我在我的应用程序.csproj文件中添加了以下内容:
<Target Name="AfterBuild">
<CallTarget Targets="CopyAbcpdfToDeployFolder" />
</Target>
<Target Name="CopyAbcpdfToDeployFolder">
<ItemGroup>
<SourceDir Include="$(ProjectDir)XULRunner\**\*.*" />
</ItemGroup>
<Copy SourceFiles="@(SourceDir)" DestinationFolder="$(WebProjectOutputDir)\$(OutputPath)%(SourceDir.RecursiveDir)\XULRunner" />
</Target>
Run Code Online (Sandbox Code Playgroud)
(这似乎工作正常 - 构建后,XULRunner文件夹及其内容存在于我的bin文件夹中)
失败的代码行如下:
theDoc.AddImageUrl(url);
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我搞定这个吗?
事实证明,我对.csproj文件的更改并未将所有文件复制到正确的子文件夹中.为了递归地复制文件夹结构和文件,XML应该如下所示:
<Target Name="AfterBuild">
<CallTarget Targets="CopyXULRunnerToDeployFolder" />
</Target>
<Target Name="CopyXULRunnerToDeployFolder">
<ItemGroup>
<MyFiles Include="XULRunner\**\*.*" />
</ItemGroup>
<Microsoft.Build.Tasks.Copy SourceFiles="@(MyFiles)" DestinationFiles="@(MyFiles->'$(OutputPath)\XULRunner\%(RecursiveDir)%(Filename)%(Extension)')"/>
</Target>
Run Code Online (Sandbox Code Playgroud)