【问题标题】:How to create dll inclusive msi installer package如何创建包含 dll 的 msi 安装程序包
【发布时间】:2019-07-08 23:14:15
【问题描述】:

我已经创建了一个程序并想发布它,但目前正在努力解决 dll 依赖问题。如何创建可以正确安装 .dll 的 msi 安装程序包?到目前为止,我在网上找到的每个解决方案都创建了只包含 exe 的 msi 包。

【问题讨论】:

  • MS 对 VC++ 运行时库的安装方式有要求,因此您自己尝试这样做是在浪费时间。您必须通过 MS 安装程序分发它们。您也不应该尝试将任何内容放入系统文件夹中;它们属于操作系统,现代 Windows 版本会阻止您在那里安装(并且无论如何都用自己的版本替换您安装的任何东西)。计算机上已经存在任何系统 DLL,您根本不需要分发它们。其他仅供您的应用使用的 DLL 应正确安装在您自己的应用文件夹中。
  • 作为一个建设性的建议:你应该把这堵文字墙分成可读的段落,并删除一些无关的评论。
  • @KenWhite“系统上已经存在任何系统 dll”我无法判断系统安装了哪些所需的 dll,哪些是作为额外包安装的。当您说“ms 安装程序”时,您的意思是 .msi 文件吗?因为这就是问题的具体内容,所以它在标题中。

标签: dll windows-installer installation


【解决方案1】:

简短回答:通常,最常见的运行时是:JavaVisual Studio C/C++ Runtime.NET Framework。尝试在干净的虚拟机上安装这些并尝试启动您的应用程序。 Debugging application launch check-list.


现代部署:我们过去部署的许多 Microsoft 运行时现在都是 Windows 的一部分。一个例外是 Visual Studio C/C++ 运行时。我不确定为什么此时它们不只是包含在 Windows 中。一般来说,您不应该选择单个 dll 文件来部署,您需要找到一个合并模块、一个 setup.exe 或一个 MSI 来部署运行时。商业工具具有帮助您下载此类捆绑包的功能。

设置:此处描述了创建设置的基本常规步骤:How to create a windows installer for multi language program with outside dependencies?

特定运行时:通常可以通过查看应用程序文件(经验丰富的眼睛)、查看应用程序 GUI(视觉线索)、检查来确定运行时要求使用dependency scanner tools 的依赖关系,与应用程序的开发人员交谈,检查您发现依赖的文件的文件属性(公司名称是一个很好的线索)等等......然后您在干净的虚拟机上验证和测试它。您继续手动安装运行时,直到您的应用程序工作。 In the section "The Complexity of Deployment" here 您可以找到常用运行时和技术的列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多