![](/img/trans.png)
[英]WiX installer .msi doesn't install the attached .lib and .dll files
[英]WiX installer includes dll into msi
我正在尝试使用WiX创建安装程序。 为了将DLL包含到.msi包中,我尝试了两种不同的方法。 其中之一是:
<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工具? 在这种情况下,您能解释一下如何使用它吗? 官方文件很差
谢谢
您想要的是一种收割工具来为您执行此操作。 幸运的是它已经存在: 热
在您的特定情况下,您可能需要使用命令heat dir ".\\My Files" -gg -g1 -directoryid "YourDirectoryId" -sfrag -template:fragment -out directory.wxs
但是请检查您究竟需要什么,哪一个使您收获想跳过等...
注意-t <xsl>
开关,它可以让您完全控制如何调整最终输出。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.