2009-05-21 73 views
3

我的应用程序需要使用由政府机构独立验证的dll(也由我编写)。我们计划很少修改DLL,因为需要重新验证。我想防止对我的应用程序拾取的这个dll进行无意的修改。有没有办法为DLL创建一个哈希码,并设置我的应用程序只使用这个特定的版本。强制我的应用程序使用特定版本的DLL

这样,如果有人修改了dll的一些代码,当我们构建并运行应用程序时,应用程序将无法加载dll(因为它已经更改)。

任何意见/建议?

干杯,

詹姆斯

回答

4

使用强名称做部分的这一点,并阻止其他人使用你的装配篡改,但不会阻止你偶然做它,然后辞职。

我们使用独立的流程来启动我们的主应用程序。在启动主应用程序之前,启动应用程序MD5的所有assmeblies并将它们与它期望看到的列表进行比较,如果发生了某些变化,MD5会失败,并且主应用程序未加载。

如果您确实需要编译时检查,那么您可能会编写一个预生成步骤,执行相同的MD5比较,如果发生更改,则生成失败。

2

我知道,如果你点击你的项目一个DLL参考,你可以在它的属性中选择“特定版本”,并将其设置为True,将在没有做什么你在之后?

菲尔

+1

这将工作提供版本号在构建新版本的程序集时增加。如果你控制你的版本号,以便它们没有唯一的内部版本号,这将不会为你提供足够的保护,因为不止一个版本号可以有相同的版本号(不好的做法,但它会发生)。 – 2009-05-21 09:35:18

相关问题