3

ABCpdf.NET および ABCpdf.NET Gecko ランタイム nuget パッケージを使用するように、(以前は動作していた) PDF 作成 Web アプリケーションを更新しようとしています。

両方のパッケージ (どちらもバージョン 8.1.1.6) をインストールしましたが、アプリケーションを実行すると、次のWebSupergoo.ABCpdf8.Internal.PDFExceptionが発生します。

HTML を追加できませんでした: Gecko エンジンで、回復できないエラーが発生しました。考えられる原因: XULRunner フォルダーが壊れているか、別のバージョンの ABCpdf からのものです。

ABCpdf.NET Gecko ランタイム パッケージをインストールした後、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>

(これは正しく動作しているようです - XULRunner フォルダーとその内容は、ビルド後に私の bin フォルダーに存在します)

失敗しているコード行は次のとおりです。

theDoc.AddImageUrl(url);

誰でもこれを機能させるのを手伝ってもらえますか?

4

2 に答える 2

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>
于 2012-08-02T07:05:25.847 に答える
2

次のMSBuildxmlで同じ結果を達成できました。

<ItemGroup>
    <Content Include="XULRunner\**\*.*">
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
</ItemGroup>

XULRunnerファイルを含まないMSDeployを介したパッケージのビルドに関する問題に対処した後、このセットアップに行き着きました。

これに明らかに問題があるかどうかはわかりませんが、これまでのところ、複数段階の展開セットアップで機能します。

于 2013-03-05T17:41:01.317 に答える