2011-07-06 66 views
2

我有一個Windows Servicea發佈內部版本),我用Debug模式替換了一個DLL並試圖啓動該服務。它引發了一個錯誤無法加載文件或程序集「名稱」或其依賴項之一。試圖加載程序的格式不正確,但是當我替換髮布模式中構建的DLL時,服務已成功啓動。我的問題是why is there a difference between a DLL built in Debug mode & in Release mode. What is the differenceDLL包含什麼?調試DLL和發佈DLL有什麼區別?

+0

從來沒有見過「沒有建立反對適當的模式等」的錯誤信息。您當然可以更好地記錄該消息? –

回答

6

這兩者之間最大的不同在於: 在調試版本中,完整的符號調試信息被髮出以幫助調試應用程序,並且不考慮代碼優化。 在發佈版本中,不會發出符號調試信息,並且代碼執行已經過優化。 另外,因爲符號信息不是在發佈版本中發佈的,所以最終可執行文件的大小比調試可執行文件的大小要小。

DLL通常位於bin目錄中的文件是已編譯的源代碼,除非您將它解散,否則您將無法修改它。

您需要源代碼,然後對源代碼進行更改,然後將其編譯爲新的DLL。

3

不同之處在於調試版本包含調試所需的額外數據(符號名稱等)被鏈接到使用DLL的調試版本(通常是運行時DLL)。

後者是你造成問題的原因之一。

如果您需要調試信息,請嘗試在發佈版本中使用日誌文件,而不是在網站上運行調試版本。