2014-09-27 63 views
2

我有一個winform應用程序,我使用windows安裝程序project.Now在安裝程序的幫助下構建,我已成功將應用程序安裝到我的系統中。在檢查安裝文件夾時,我可以注意到所有外部.dll文件都與應用程序一起存在.exe。現在,我從用戶程序菜單啓動應用程序,並從應用程序屏幕點擊按鈕,出現錯誤。使用應用程序時無法加載文件或程序集錯誤用戶程序菜單

System.IO.FileNotFoundException: Could not load file or assembly 'EPPlus, Version=3.1.3.0, Culture=neutral, PublicKeyToken=ea159fdaa78159a1' or one of its dependencies. The system cannot find the file specified. 

雖然該文件存在於文件夾中。也當我試圖從安裝文件夾中使用應用程序時,我能夠訪問所有功能,無任何錯誤。

這是爲什麼happening.Please幫我解決這個..

回答

0

要調試這個問題,打開該項目Properties - >開Debug - >設置Working Directory爲 「開始菜單」 文件夾(這是C:\ProgramData\Microsoft\Windows\Start Menu\Programs\YourPragram)。然後開始調試重新創建綁定錯誤。

它很可能是您的應用程序預計CurrentDirectory設置爲應用程序文件夾。如果是這樣,你應該在代碼中明確地設置它。在Main方法,添加此

Environment.CurrentDirectory = System.IO.Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath); 

這一行,即使應用程序從Start Menu啓動,CurrentDirectory是應用程序文件夾,而不是開始菜單。

您還可以使用Fuslogvw.exe(程序集綁定日誌查看器)來診斷綁定錯誤。

  1. 啓動Visual Studio命令提示符(以Administrator身份)。
  2. 運行命令「Fuslogvw.exe」
  3. 點擊「設置」,並在日誌設置對話框中選擇「log bind error to disk」,並勾選「啓用自定義日誌路徑」,設置路徑如「C:\ 「
  4. 從開始菜單運行您的程序,發生異常後,轉到C:\ Default以獲取EPPlus.dll的綁定日誌。

診斷結果如下所示,您可以看到嘗試的路徑。

LOG: 嘗試新的URL文件下載:/// C:/Users/kennyzx/Desktop/cloudforge/svn/package/innosetup/Files/FolderBrowserDialogEx.DLL。 日誌:試圖下載新的URL文件:/// C:/Users/kennyzx/Desktop/cloudforge/svn/package/innosetup/Files/FolderBrowserDialogEx/FolderBrowserDialogEx.DLL。

LOG: All probing URLs attempted and failed. 
0

在快捷方式,你可能要設置「啓動」目錄,以便Windows可以設置應用程序的當前目錄。

0

以我爲例,我試圖使用EPPlus庫在SSIS包和我得到同樣的錯誤。 我的解決辦法是把這個文件夾中的文件:C:/ Program Files文件(86)/的Microsoft SQL Server/100/DTS/BINN/

感謝

相關問題