c# - 强制我的应用程序使用特定版本的 dll

标签 c# .net dll

我的应用程序需要使用已由政府机构独立验证的 dll(也是我编写的)。由于需要重新验证,我们计划很少修改 dll。我想防止我的应用程序拾取对该 dll 的无意修改。有没有办法为 dll 创建哈希码并将我的应用程序设置为仅使用此特定版本。

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

有什么想法/建议吗?

干杯,

詹姆斯

最佳答案

使用强名称可以部分做到这一点并防止任何其他人篡改您的程序集,但不会阻止您无意中这样做然后辞职。

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

如果您真的想要编译时检查,您可以编写一个预构建步骤来执行相同的 MD5 比较,如果它发生更改则构建失败。

关于c# - 强制我的应用程序使用特定版本的 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/892073/

相关文章:

c - dlclose()/FreeLibrary()失败后句柄的情况

c# - 在 C# 中使用 C++ unsigned int *array

c# - 我可以将一个大的 dll 分成每个类 1 个 dll 吗?

C++ Visual Studio DLL 文件

c# - 使用 ffmpeg/ffprobe 获取视频的长度不起作用

c# - 在 WCF 中实现丰富的域模型,其中客户端对象充当远程外观

c# - 使用 Type 对象将 Object 类型的对象转换为另一种类型

C# Linq,在两个列表中搜索相同的项目

c# - 如何验证我的 LINQ-to-SQL 模型是否与数据库架构匹配?

c# - Visual Studio 2013 不会在出现错误的代码行上停止