无法在msi安装程序中包含重复文件

时间:2015-03-24 09:08:48

标签: windows wix windows-installer

我正在使用Windows 7 64,VS 2013。

我正在尝试创建一个MSI安装程序,其中包含分布在2个不同文件夹中的2个C#应用程序,这两个文件夹包含1个相同的DLL文件。我正在添加所有必要的依赖项,一切似乎都很好,但安装后,其中一个应用程序会抛出有关加载该DLL的错误。

我的假设是VS安装程序项目将文件保存在一个公共文件夹中,当它看到相同的文件时,它会自动引用两个应用程序以使用相同的精确DLL。

我解决此问题的方法是在将DLL添加到安装程序项目时重命名该DLL,并创建一个在安装后重命名DLL的​​小.bat脚本。这是有效的,但我猜测除了让脚本在安装/卸载时运行以重命名一些DLL之外,还有更优雅的方法。

1 个答案:

答案 0 :(得分:2)

严格地说,Windows Installer有一些称为组件规则的东西。其中一个方面是给定文件夹中的给定文件只能属于一个组件。两个不同文件夹中的相同文件将是两个不同的组件,因为组件只能为一个文件夹定义文件。

WiX创建了MSI并具有一项名为智能驾驶室的功能,当压缩到驾驶室并嵌入到MSI中时,该文件将被标准化。

Visual Studio安装程序项目的质量非常低,并且在被作为附加功能重新启用之前将被Microsoft杀死。它有可怕的依赖扫描,你发现" automagical"行为不能很好地发挥作用。

相关问题