我的应用程序需要使用已由政府机构独立验证的 dll(也是我编写的)。由于需要重新验证,我们计划很少修改 dll。我想防止我的应用程序拾取对该 dll 的无意修改。有没有办法为 dll 创建哈希码并将我的应用程序设置为仅使用此特定版本。
这样,如果有人修改了 dll 的一些代码,当我们构建和运行应用程序时,应用程序将无法加载 dll(因为它已更改)。
有什么想法/建议吗?
干杯,
詹姆斯
最佳答案
使用强名称可以部分做到这一点并防止任何其他人篡改您的程序集,但不会阻止您无意中这样做然后辞职。
我们使用一个独立的进程来启动我们的主应用程序。在启动主应用程序之前,启动应用程序 MD5 的所有组件,并将它们与它期望看到的列表进行比较,如果发生变化,则 MD5 失败并且主应用程序未加载。
如果您真的想要编译时检查,您可以编写一个预构建步骤来执行相同的 MD5 比较,如果它发生更改则构建失败。
关于c# - 强制我的应用程序使用特定版本的 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/892073/