我有一个包含许多子目录的大型项目,我需要从中收集文件。我在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"
部分。这是让这个工作的唯一方法吗?
答案 0 :(得分:1)
您需要将App_Data.wxs添加到您的wixproj,就像您将代码生成的cs文件添加到csproj一样。 例如,如果App_Data.wxs与wixproj位于同一文件夹中,则可以将以下Compile元素添加到wixproj中的ItemGroup元素中。 ProTip:如果您使用默认为只读的SCM,则每次都需要检查它或设置为始终可写。
<ItemGroup>
<Compile Include="App_Data.wxs" />
</ItemGroup>