ABCpdf nuget包XULRunner文件夹是否已损坏?

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)

任何人都可以帮我搞定这个吗?

kri*_*ian 5

事实证明,我对.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)