当我尝试为我的解决方案创建 .msi 安装时,我遇到了类似的问题。
为了克服这个问题并让它随着时间的推移而持久,即使我在我的项目中插入新的 .dll 和其他依赖项并使其自动化,我做了以下操作。
在我的 Product.wxs 我有这个“目录”
<!--Here We Install Our Main App-->
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="MyAppDir"/>
</Directory>
...
</Directory>
在我的 Wix 项目-> 属性-> 构建事件-> 预构建事件命令行中,我添加了以下命令:
"%wix%\bin\heat" dir "$(SolutionDir)MainProject\bin\Debug" -dr INSTALLFOLDER -scom -frag -srd -sreg -gg -cg Components -var var.MainProject.TargetDir -o $(SolutionDir)MainProject\Includedheat.wxs
一旦我构建了我的 wix 项目,它将在我的 MainProject 目录中创建一个 Includedheat.wxs 文件,其中列出了我的 MainProject\bin\Debug 目录中的所有文件。
下一步 - 将 Includedheat.wxs 添加到 wix 项目中,而不是在我添加的功能部分中:
<!--Add Component-->
<Feature Id="MainApplication" Title="Main Application" Level="1">
...
<ComponentGroupRef Id="Components" />
</Feature>
现在,一旦我重建并安装了 .msi,驻留在我的 MainProject\bin\Debug 目录中的所有内容也将包含在目标位置的 MyAppDir 目录中。
有关更多信息:我遵循了本指南:
创建一个工作的 Wix 项目。
简单的方法heat.exe。
还建议阅读以了解在您的命令中使用哪些标志。