2012-01-20 125 views
0

我還有另一個部署問題。.Net應用程序部署:僅在我的機器上運行

我擁有的東西:一些Windows窗體應用程序,它在瀏覽器緩存中查找並從那裏複製圖像文件。

問題:應用程序在我的機器上運行良好,但是每當我嘗試在別人的機器上運行它時,我都會收到一條錯誤消息(「發生錯誤。退出」以及Temp文件夾中的3個文件的列表。關於這些文件中的問題沒有太多的信息。

我已經嘗試了不同的目標框架.Net 4.0,.Net 4.0客戶端配置文件,3.5,3.5客戶端配置文件 - 同樣的問題 我試過OneClick的部署和安裝項目,只是複製* .exe文件,所有最後都出現同樣的問題

在目標機器上安裝完整的.Net 4.0框架,但它沒有區別

該應用程序正在從註冊表中讀取,但我不認爲從HKLM讀取需要管理員權限,但我嘗試以管理員身份運行。

我試過Windows 7,XP SP3 - 類似的輸出。

除.Net框架外,項目沒有依賴關係。

任何建議,我可以檢查在外國機器上的應用程序究竟發生了什麼?

p.s.源代碼可在這裏,如果你想看看:http://cachecopy.codeplex.com/SourceControl/list/changesets

UPD:感謝您的建議,大家好,我已經設置了Visual Studio中的一些其他的機器上並在幾秒內發現了一個問題。我試圖用String.Empty作爲地址打開目錄。傻我!

+0

您是否有權訪問應用程序失敗的其他人的機器,即他們是否允許您將調試器附加到進程並查看其中斷位置? –

+0

此刻試圖在其他機器上設置開發環境。將在幾分鐘內運行調試器 - ) – trailmax

+0

比設置整個開發環境更簡單的是使用遠程調試。很高興你發現了這個問題。 –

回答

1

基本上,無論是在您的應用程序或表單加載過程中,某段代碼都試圖對受保護或不存在的目錄/文件執行文件操作,而無需進行適當的錯誤處理。

訣竅是弄清楚在執行任何文件處理之前,如何在應用程序中引用路徑/文件名,並將它們與特定的操作系統/用戶名解耦。

嘗試/捕捉自定義錯誤以幫助您精確定位區域將是圍繞所有文件系統訪問代碼的好主意。

+0

與肖恩的建議一樣。我會繼續努力的。謝謝! – trailmax

2

聽起來像...... ProcMon的工作。在啓動應用程序時在機器上運行它,並過濾除exe之外的所有內容。這將向您顯示所有文件系統和註冊表活動。如果存在權限問題,您會在結果列中看到拒絕訪問權限,或者如果缺少某些內容,則會看到路徑未找到的條目。

+0

歡呼聲,我會繼續努力 – trailmax

2

難道是在某些時候你引用的文件在其他機器上不存在嗎?例如'C:\ MyFile'?

+0

好點!我已經檢查並刪除了所有本地路徑,然後再發布...我再次仔細檢查。感謝您的建議。 – trailmax

+0

沒問題:)希望你把它整理出來! –

相關問題