2009-05-21 122 views
3

我的應用程序需要使用由政府機構獨立驗證的dll(也由我編寫)。我們計劃很少修改DLL,因爲需要重新驗證。我想防止對我的應用程序拾取的這個dll進行無意的修改。有沒有辦法爲DLL創建一個哈希碼,並設置我的應用程序只使用這個特定的版本。強制我的應用程序使用特定版本的DLL

這樣,如果有人修改了dll的一些代碼,當我們構建並運行應用程序時,應用程序將無法加載dll(因爲它已經更改)。

任何意見/建議?

乾杯,

詹姆斯

回答

4

使用強名稱做部分的這一點,並阻止其他人使用你的裝配篡改,但不會阻止你偶然做它,然後辭職。

我們使用獨立的流程來啓動我們的主應用程序。在啓動主應用程序之前,啓動應用程序MD5的所有assmeblies並將它們與它期望看到的列表進行比較,如果發生了某些變化,MD5會失敗,並且主應用程序未加載。

如果您確實需要編譯時檢查,那麼您可能會編寫一個預生成步驟,執行相同的MD5比較,如果發生更改,則生成失敗。

2

我知道,如果你點擊你的項目一個DLL參考,你可以在它的屬性中選擇「特定版本」,並將其設置爲True,將在沒有做什麼你在之後?

菲爾

+1

這將工作提供版本號在構建新版本的程序集時增加。如果你控制你的版本號,以便它們沒有唯一的內部版本號,這將不會爲你提供足夠的保護,因爲不止一個版本號可以有相同的版本號(不好的做法,但它會發生)。 – 2009-05-21 09:35:18

相關問題