【问题标题】:WiX harvest directories with heat带有热量的 WiX 收获目录
【发布时间】:2015-04-16 14:04:06
【问题描述】:

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

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

在构建时,我运行一个带有许多 heat 命令的 bat 文件来获取这个目录,等等:

"%WIX%\bin\heat" 目录 ".\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" 部分。这是让它工作的唯一方法吗?

【问题讨论】:

    标签: wix wix3.8


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-07
      • 2019-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多