簡體   English   中英

.NET應用程序部署:僅在我的計算機上運行

[英].Net application deployment: runs only on my machine

我還有另一個部署問題。

我所擁有的:小型Windows Forms應用程序,它在瀏覽器緩存上查找並從那里復制圖像文件。

問題:該應用程序在我的計算機上運行良好,但是每當我嘗試在其他人的計算機上運行該應用程序時,我都會收到一條錯誤消息(類似“發生錯誤。正在退出”以及Temp文件夾中的3個文件的列表。沒有太多信息這些文件中的問題。

我嘗試使用不同的目標框架.Net 4.0,.Net 4.0客戶端配置文件,3.5、3.5客戶端配置文件-相同的問題。 我已經嘗試過OneClick部署和安裝項目,只是復制* .exe文件。 所有人最終都遇到相同的問題。

在目標計算機上安裝了完整的.Net 4.0框架,但沒有什么區別。

該應用程序正在從注冊表中讀取內容,但我認為從HKLM中讀取內容並不需要管理員權限,但是無論如何我都嘗試以管理員身份運行。

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

除了.Net框架之外,該項目沒有任何依賴項。

有什么建議可以檢查外國計算機上的應用程序究竟發生了什么?

ps如果您想看一下,可以在這里找到源代碼: http : //cachecopy.codeplex.com/SourceControl/list/changesets

UPD:感謝您的建議,我已經在其他計算機上安裝了Visual Studio,並在幾秒鍾內發現了問題。 我試圖用String.Empty作為地址打開目錄。 傻我!

聽起來像是ProcMon的工作。 在啟動應用程序時在計算機上運行此程序,並過濾除exe之外的所有內容。 這將顯示所有文件系統和注冊表活動。 如果存在權限問題,您將在結果列中看到訪問被拒絕,或者如果缺少任何內容,您將看到未找到路徑條目。

可能是因為您引用的文件在其他計算機上不存在嗎? 例如'C:\\ MyFile'?

基本上,在您的應用程序或表單加載過程中,某些代碼段試圖在沒有適當錯誤處理的情況下對受保護或不存在的目錄/文件執行文件操作。

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

嘗試/捕獲自定義錯誤可以幫助您查明所有文件系統訪問代碼中的區域。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM