1
我正在尝试使用WiX创建安装程序。将DLL包含到.msi包中我尝试了两种不同的方式。其中之一是:WiX安装程序包含msi的dll
<DirectoryRef Id="SETTINGSDIR">
<Component Id="CMP_CopySettings" Guid="AC7D1AA1-798B-48F5-AF8D-188B1050D47C" KeyPath="yes">
<CreateFolder />
<File Id="DBA.bat" Source="$(var.SolutionDir)\scr\A\A.WindowsService\bin\$(var.Configuration)\Settings\A_DB clear.bat" Checksum="yes"/>
<File Id="AConfiguration.xml" Source="$(var.SolutionDir)\scr\A\A.WindowsService\bin\$(var.Configuration)\Settings\AConfiguration.xml" Checksum="yes"/>
<File Id="ADB.CE.DEFAULT.sdf" Source="$(var.SolutionDir)\scr\A\A.WindowsService\bin\$(var.Configuration)\Settings\ADB.CE.DEFAULT.sdf" Checksum="yes"/>
<File Id="ADB.CE.sdf" Source="$(var.SolutionDir)\scr\A\A.WindowsService\bin\$(var.Configuration)\Settings\A.CE.sdf" Checksum="yes"/>
<RemoveFile Id="RemoveFileSettings" Name="*" On="uninstall"/>
</Component>
</DirectoryRef>
但你可以很容易地理解,这是非常难写的每个DLL的XML节点(6个项目,200多个DLL的每一个人)。
第二个是快,但WiX的只是创建一个链接到该文件夹,而不是复制的DLL到MSI包
<DirectoryRef Id="SETTINGSDIR">
<Component Id="CMP_CopySettings" Guid="AC7D1AA1-798B-48F5-AF8D-188B1050D47C" KeyPath="yes">
<CreateFolder />
<CopyFile Id="SettingsID" SourceProperty="SETTINGSSOURCEDIRECTORY" DestinationDirectory="SETTINGSDIR" SourceName="*" />
<RemoveFile Id="RemoveFileSettings" Name="*" On="uninstall"/>
</Component>
</DirectoryRef>
是否有一个快速的解决方案,我可以在我的第二个方式增加或我要使用heat.exe工具?在这种情况下,你能向我解释如何使用它吗?官方的文档是非常差
感谢
也仅供参考,您不需要或组件中的 标签。另一个最佳做法是为安装程序中的每个文件分配一个组件,除非它们紧密耦合在一起。你的第二种方法不是一个好主意,因为它会删除该目录中的所有**。即使是安装文件,安装程序也无权删除(如果用户因任何原因将其放置在那里)。希望热工具对你非常有帮助。我使用它来将一个3000多个文件目录收集到一个SDK安装程序中,因此它非常有用。 –