将MSI中的dll文件写入本地目录

将MSI中的dll文件写入本地目录,dll,wix,exe,windows-installer,Dll,Wix,Exe,Windows Installer,我希望将几个DLL文件(这些是我们使用的第三方软件的补丁DLL文件)打包到MSI中,并将它们写入安装程序机器上的某个目录。然后我想写入windows注册表以存储上次安装的MSI版本。我以前从未做过这样的事,我需要指导。请就如何做到这一点提出建议?WIX工具集 任何MSI工具都可以做到这一点,事实上,如果它不能做到这一点,那么拥有一个构建MSI文件的工具是毫无意义的!如果这是你用MSI做的唯一一件事,那么你甚至可以使用Visual Studio 2013社区版和安装程序扩展,一天就可以完成。如果你

我希望将几个DLL文件(这些是我们使用的第三方软件的补丁DLL文件)打包到MSI中,并将它们写入安装程序机器上的某个目录。然后我想写入windows注册表以存储上次安装的MSI版本。我以前从未做过这样的事,我需要指导。请就如何做到这一点提出建议?WIX工具集

任何MSI工具都可以做到这一点,事实上,如果它不能做到这一点,那么拥有一个构建MSI文件的工具是毫无意义的!如果这是你用MSI做的唯一一件事,那么你甚至可以使用Visual Studio 2013社区版和安装程序扩展,一天就可以完成。如果你要做更多的MSI工作,需要比你描述的更多的功能,我当然不会推荐VS。WiX可能需要更长的时间,因为它公开了更多的Windows安装程序功能

我认为您不需要“上次安装的MSI版本”。我想如果你得到更多版本的MSI,你会担心更新,换句话说,我想你会把它看作是解决一些你没有解释的问题的方法。MSI的版本仍将在程序和功能中


您描述的场景听起来像是一个热修复程序,所有者公司没有合适的修复程序,这将是一个补丁或另一个基于MSI的更新,而不仅仅是转储文件以替换现有文件。Chris是正确的-他们决定不做正确的事情(创建补丁),而是让您的公司面临管理更新的问题

我要指出的是,您应该创建一个补丁,而不是第二个MSI。您的设计违反了windows installer组件规则,可能会导致问题。如何创建修补程序来分发这些DLL?它应该由同一家软件公司提供吗?理想情况下他们应该提供。我刚检查过,他们没有可用的补丁。目前我唯一的解决方案是将dll文件直接放到C:\Program files\Software Company\bin位置。他们说我甚至不需要安装dll文件,我只需要用他们给我的新dll覆盖他们现有的dll,并更新注册表以反映软件的新版本号。他们没有描述最佳实践。您可以使用它们的安装和dll来创建修补程序。我在WiX中不是很擅长,因为我在这个场景中使用InstallShield快速补丁项目。你能告诉我如何将DLL打包到MSI中的资源吗?这很旧,但仍然相关: