2012-08-02 51 views
3

我正在嘗試使用ABCpdf.NET和ABCpdf.NET Gecko Runtime nuget軟件包更新我的(以前的工作)pdf創建Web應用程序。ABCpdf nuget包XULRunner文件夾是否損壞?

我已經安裝了兩個包(均爲8.1.1.6版本),但是當我跑我的申請,我得到以下WebSupergoo.ABCpdf8.Internal.PDFException

無法添加HTML:壁虎引擎出現錯誤,無法從中恢復 。可能的原因: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> 

(這似乎是正常工作 - 中,XULRunner文件夾和構建後的內容出現在我的bin文件夾)

的是失敗的代碼行如下:

theDoc.AddImageUrl(url); 

誰能幫助我得到這個工作?

回答

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> 
2

我可以用下面的MSBuild XML來完成相同的結果:

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

我在下降在處理有關通過不包含XULRunner文件的MSDeploy構建軟件包的問題之後進行此設置。

不確定是否有任何明顯的錯誤,但到目前爲止,它在多階段部署設置上適用於我。