WiX收获目录加热

时间:2015-04-16 14:04:07

标签: wix wix3.8

我有一个包含许多子目录的大型项目,我需要从中收集文件。我在product.wxs文件中有这个条目:

<Feature Id="DefaultFeature" Title="Main Feature" Level="1">
   <ComponentGroupRef Id="APP_DATA" />
</Feature>

在构建时,我运行一个带有许多加热命令的bat文件来收集这个目录,其中包括:

  

“%WIX%\ bin \ heat”dir“。\ image \ App_Data”-cg APP_DATA -gg -scom -dr   App_Data -gl -sfrag -srd -out“。\ App_Data.wxs”

这会在与Product.wxs文件相同的文件夹中生成文件App_Data.wxs。但是当构建运行时,我收到以下错误:

  

Product.wxs(97):错误LGHT0094:未解析的符号引用   “WixComponentGroup:APP_DATA”部分   '产品:{FAD0EA15-49BC-4EF8-A440-87070E4FAC7A}'

我看来WiX项目在App_Data.wxs文件中找不到“APP_DATA”组件组。我怎么做到这一点?我假设ProjectName.wixproj文件中有一个条目,但我还没找到你做的。

我一直在搜索互联网并找到了一千种方法来设置它,但没有详细说明如何让WiX项目在构建过程中看到由热量产生的文件。我看到了this post

其中讨论了如何编辑wixproj文件的Target Name="BeforeBuild"部分。这是让这个工作的唯一方法吗?

1 个答案:

答案 0 :(得分:1)

您需要将App_Data.wxs添加到您的wixproj,就像您将代码生成的cs文件添加到csproj一样。 例如,如果App_Data.wxs与wixproj位于同一文件夹中,则可以将以下Compile元素添加到wixproj中的ItemGroup元素中。 ProTip:如果您使用默认为只读的SCM,则每次都需要检查它或设置为始终可写。

<ItemGroup>
    <Compile Include="App_Data.wxs" />
</ItemGroup>