5

我们使用 HEAT 为我们的 Web 项目安装程序构建一个文件。我想知道是否有一种方法可以将文件包含在编译中,但不包含在项目中。

我需要这个的原因是我不想在我们的源代码管理中签入文件,而是在我们构建 wixproj 时构建它。否则,我们必须劫持/签出文件才能可靠地构建项目。

4

1 回答 1

5

如果您使用 MSBuild 和 .wixproj 来构建您的 .MSI,那么您需要从.wixprojHEATCompile项目中获取输出。如果不包含该文件,它将不会被编译成最终的 .MSI。

幸运的是,MSBuild 提供了很多选项来动态包含项目。例如,您可以在 .wixproj 中有一个自定义目标来运行HEAT并添加输出

 <Target Name='RunHeat'>
     <Exec Command='heat.exe param param param -o path\to\output.wxs' />
     <ItemGroup>
         <Compile Include='path\to\output.wxs' />
     </ItemGroup>
 </Target>

现在,如果您让目标在RunHeat目标之前运行Compilewix.targets那么Compile生成的项目RunHeat将包含在Compile目标中。鉴于 MSBuild 的灵活性,您可能有十几种其他方法可以完成此任务。

希望有帮助,祝你好运!

于 2013-05-10T08:01:37.350 回答