有关部署openSSL dll的建议

LaB*_*cca 5 delphi deployment resources openssl indy

我做了一个使用Indy的简单应用程序,需要OpenSSL dll.

我不打算为它编写安装程序,所以我有两个选择:

1)通过在同一文件夹中复制应用程序exe + libeay32.dll + ssleay32.dll来部署它

2)将libeay32.dll和ssleay32.dll放在exe资源中并在程序启动时将它们解压缩到applicationpath(但是如果我在windowsserver 2008或windows vista上运行exe并且我使用了本程序,这可能会出现问题文件夹"部署")

你能评论一下这些技术或建议更好的方法吗?

Mar*_*son 4

你可以坚持选择 1) :D

或者,您可以使用数字 2 的变体,但将它们提取到应用程序数据路径:

GetSpecialFolderPath(CSIDL_LOCAL_APPDATA))
Run Code Online (Sandbox Code Playgroud)

并使用

SetDLLDirectory(DirectoryPath:PWideChar) 
Run Code Online (Sandbox Code Playgroud)

指定从哪里加载 dll

当然,说实话,编写一个简单的安装程序会更快!

编辑:哦,是的,正如 UnixShadow 提到的,对 dll 进行哈希处理,这样您就可以确定您使用的是正确的文件!

  • 安装程序的编写和部署速度更快,特别是如果您(作者)不是安装应用程序的人。单击网络链接 -> 运行 -> 下一步 -> 下一步 -> 下一步 -> 完成。反对:点击网页链接 -> 错误...保存?-> 双击文件 -> 错误,不工作?双击另一个文件 -> 错误,您无法从 zip 文件启动应用程序???哦,我需要从存档中提取文件!什么是档案? (2认同)