2010-07-27 199 views
2

我已經在VS C#Express 2008中使用Windows 7作爲我的操作系統創建了一個應用程序。它在其他W7機器上運行得非常好,但是當我們嘗試將它部署到裝有XP的機器上時,它甚至無法運行。我只是得到了通常的「應用程序需要終止」的錯誤信息。該應用程序是使用.NET 3.5構建的,所有機器至少安裝了3.5個。有什麼我可以做的,讓程序在以前的版本中運行?在此先感謝您的幫助。C#應用程序在Windows 7中運行,但不在Windows XP中運行

更新信息。這些機器都使用x86 32位操作系統,XP SP3或W7,所以我不認爲需要檢查64位問題。應用程序本身正在將圖像加載到圖像列表中,並在發現文件名稱中斷時添加圖像。 (例如,一個文件夾中有4個圖像,1-3和5,應用程序執行的操作是遍歷每個圖像名稱,以及它看到圖像4丟失的那一分鐘,它會添加一個佔位符圖像並將其標記爲圖像4。

+4

您需要添加更多的細節,從這裏不能看出太多。 – James 2010-07-27 13:36:19

+0

您是否檢查過任何x64 - x86問題? – NickAldwin 2010-07-27 13:38:25

+1

應用程序在做什麼?我們是在談論Hello World還是其他更復雜的東西?您可能有一些需要特定操作系統和版本的外部依賴關係。這些應該被抽象出來,以便你可以相應地插入不同的實現。 (這主要是猜測,機器也可能以某種方式被破壞,我們需要更多細節。) – David 2010-07-27 13:39:10

回答

15

您應該設置UnhandledExceptionEventHandler,以便您可以記錄有關應用程序當前狀態和異常信息的信息。它不會阻止您的應用程序崩潰,但它會爲您提供更多關於發生的事情的信息,並使最終用戶更容易地向您提供應用程序崩潰時需要知道的信息。

This article給出了一個很好的描述如何做到這一點。

+0

謝謝你的文章。這至少可以幫助我找出可能導致問題的原因。 – Seb 2010-07-27 14:01:05

+0

執行UnhandledExceptionEventHandler後,它幫助我看到我的一個DLL沒有被加載進去。經過進一步檢查後,我注意到它們沒有被打包到安裝程序中,所以我必須手動插入它。感謝您的幫助。 – Seb 2010-07-28 13:18:10

0

記錄應用程序拋出的異常,以便您可以修復它。

+0

如果在加載(主)DLL期間引發異常,那麼捕捉它並不容易。 – 2010-07-27 13:45:01

0

沒有大量的信息,但有些事情要檢查:

請確保您有在XP和SP版本的最新補丁

也許你需要運行該程序以管理員身份 - 你在登錄爲管理員

你檢查過窗戶appliation錯誤日誌,看看是否有任何有可能會有所幫助

1

首先,你必須確保.NET Framework 3.5的安裝在你的Windows XP的計算機上。如果一切正常,那麼你應該檢查你是否使用「第三方dll作爲參考」,並在你的Windows XP機器上驗證它們的存在和正確版本。

也許這可以幫助。

相關問題