我們對Win Forms項目有一個非常有趣的問題。它已經解決了。我們知道發生了什麼,但我們想知道它爲什麼發生。這可能有助於未來出現類似問題的其他人。.NET參考「複製本地」基於GAC的內容設置真/假
WinForms項目在我們的客戶端PC上失敗。該錯誤是一個模糊的kernel.dll錯誤。該項目在其他3臺PC上運行良好。
我們發現我們的發佈文件夾中缺少.DLL(log4net.dll - 一個非常流行的開源日誌記錄庫)。它以前在我們的發佈文件夾中。爲什麼在這個最新版本中缺少它?
它丟失了,因爲我必須在使用log4net.dll的Dev框上安裝了一個程序,並將它添加到全局程序集緩存中。
當我檢查解決方案的log4net.dll引用時,它們被更改爲「copy local = FALSE」。他們必須自動更改,因爲log4net.dll出現在我的GAC中。
這裏就是我的問題開始:
爲什麼我的log4net.dll參考獲得來自COPY LOCAL = TRUE改爲複製本地= FALSE?我懷疑這是因爲它被另一個程序添加到我的GAC中。
我們該如何防止這種情況再次發生?現在,如果我安裝了一個使用公用庫的軟件,並將其添加到我的GAC,那麼引用該DLL的SLN將從Copy Local TRUE更改爲FALSE。
什麼大會? http://en.wikipedia.org/wiki/Global_Assembly_Cache? – 2010-03-20 01:18:07