是否可以将生成的文件包含到WiX项目中,而无需将其添加为现有文件

Spe*_*nce 5 wix visual-studio-2010 dynamically-generated

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

我需要这个的原因是我想不检查我们的源代码控制中的文件,但是在我们构建wixproj时构建它.否则,我们必须劫持/签出文件才能可靠地构建项目.

Rob*_*ing 5

如果您使用MSBuild和.wixproj来构建.MSI,则需要将输出从.wixproj HEAT中的Compile项目中列出.如果未包含该文件,则不会将其编译到最终的.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>
Run Code Online (Sandbox Code Playgroud)

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

希望有所帮助,祝你好运!