2010-08-17 145 views
0

我想執行程序啓動檢查,它會搜索所有引用的模塊(dll,exes),然後檢查它們的版本和存在。軟件完整性檢查

然後如果出現問題,顯示一個帶問題描述的消息框並關閉。

我目前正在使用反射,但現在的問題是,我能夠做任何檢查(Main()之前)和程序崩潰之前加載了一些模塊。

我現在看到的唯一解決方案是編寫預加載器應用程序,這樣做,然後啓動主程序。

其他建議?

+1

您可以強制簽署所有需要驗證的DLL和EXE。 – Oded 2010-08-17 09:21:00

+0

如果您的應用程序是從MSI安裝的,則可以將其構建爲使Windows安裝程序服務執行所有檢查以確認文件是否具有正確的版本號,並且還會生成註冊表項。 (只要確保打包,以便每個你想檢查的文件都是自己的組件和密鑰。) – ewall 2010-08-17 13:51:51

+0

To Oded和ewall: 我需要在運行時顯示自定義消息的可能性,如果出現問題(比如說,找不到dll )。你的建議並不能解決這個問題。 – 2010-08-19 13:43:29

回答

0

如果程序集由包含檢查代碼的程序集/可執行文件引用,那麼在運行檢查程序之前將會加載程序集。據我所知,解決此問題的唯一方法(除了前面提到的預加載器應用程序),是從您的入口點程序集/可執行文件中刪除所有引用,然後使用基於配置的反射來加載它們。