2011-11-10 75 views
0

我剛剛打開了幾年前部署的控制檯應用程序的源代碼,每天運行兩次,作爲我們服務器上的Windows計劃任務(它更新數據庫中的某些內容)。部署時運行得很好,但現在我們需要對代碼進行一些更改。我試圖在Debug中運行它,程序甚至不會進入sub main。它命中爲什麼我的.NET控制檯應用程序不運行Main而退出?

static void Main(string [] args)並剛剛結束運行。控制檯窗口消失。我沒有聽說客戶端的產品版本沒有運行,但是當我檢查他們的服務器時,我沒有看到我應該記錄的事件日誌條目(應用程序應該在每次運行時寫入事件日誌)

+2

你在輸出窗口中看到了什麼? –

+0

它的.NET版本是什麼?正在運行的計算機上運行哪些版本並且正在運行? – Oded

+1

您是否在調試器中看到異常? – SLaks

回答

3

這可能是一個DLL問題。

如果Main()使用JITter無法找到的程序集中的類型,則程序將在命中Main()之前死亡。
如果包含Main()的類型具有無法加載的類型的字段,也會發生這種情況。

如果該類型的靜態構造函數調用Environment.FailFast(),也可能發生這種情況。

+0

如果使用自己的Main方法創建第二個空類,該方法只是在try-catch塊中調用原始Main,則調試可能會更容易。然後將第二個類設置爲啓動類。 – Qwertie

0

如果您在運行應用程序的機器上沒有正確的.NET框架版本,我也看到了這種情況。 也許你在重新編譯時更改了目標框架版本。

相關問題