2017-02-15 60 views
0

我正在上的下面的發佈版本一個System.IO.FileNotFoundException,但沒有得到它,而調試。iTextSharp的System.IO.FileNotFoundException

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Data; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Imaging; 
using System.Windows.Navigation; 
using System.Windows.Shapes; 
using System.Windows.Forms; 
using System.Text.RegularExpressions; 
using Microsoft.Office.Interop.Word; 
using System.IO; 
using iTextSharp.text.pdf; 
using iTextSharp.text.pdf.parser; 
using iTextSharp.text.xml; 
using Microsoft.VisualBasic; 

namespace CountingTool 
{ 
    public partial class MainWindow : System.Windows.Window 
    { 
     private string SelectedFile; 

     public MainWindow() 
     { 
      InitializeComponent(); 
     }   

     private void LoadFileButton_Click(object sender, System.EventArgs e) 
     { 
      OpenFileDialog LoadFileDialog = new OpenFileDialog(); 

      LoadFileDialog.Title = "Select file"; 
      LoadFileDialog.Filter = "PDF files|*.pdf"; 
      LoadFileDialog.InitialDirectory = @"C:\"; 

      if (LoadFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
      { 
       try 
       { 
        SelectedFile = LoadFileDialog.FileName; 
       } 
       catch (Exception ex) 
       { 
        System.Windows.Forms.MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message); 
       } 
      } 
     } 

     private void CountEach() 
     { 
      string FullPdf = ExtractFullPdf(); 
      ... 
     } 

     private string ExtractFullPdf() 
     { 
      PdfReader sourceDocument = new PdfReader(SelectedFile); 
      StringBuilder text = new StringBuilder(); 

      for (int i = 1; i <= sourceDocument.NumberOfPages; i++) 
      { 
       text.Append(PdfTextExtractor.GetTextFromPage(sourceDocument, i)); 
      } 

      sourceDocument.Close(); 
      return text.ToString(); 
     } 
} 

似乎是導致問題的線路是PdfReader sourceDocument = new PdfReader(SelectedFile);

任何想法將不勝感激。

感謝

+0

當您運行發佈vs測試版本時,您是否在相同的環境中運行您的可執行文件? –

+0

@MattSpinks是的,我是。 build/bin/Debug可以正常工作,但/bin/Debug/app.publish中的內部版本有問題。 – stutch

+0

我只是想指出你的try catch塊在一個字符串到字符串賦值期間正在防範出錯的地方。 –

回答

1

問題是,itextsharp.dll需要在同一目錄中內置.exe文件。

0

如果你完全確定你所指定的路徑是正確的,儘管這可能是不可能的話,我可以建議您使用:

Request.PhysicalApplicationPath(「在此處輸入路徑「);

使用Server.Mappath( 「在此處輸入路徑」);這裏

相關問題