我在做什么
我在Visual Studio 2010中有一个ASP.Net Web应用程序和一个WiX安装项目。我可以使用以下HEAT命令集显式地获取web应用程序,作为安装项目的预构建事件:
"%WIX%\bin\heat.exe"项目"(SolutionDir(Application.WebUI\Application.WebUI.vbproj"-o"$(ProjectDir(ProjectOutputContent.wxs"-pog内容-ag-模板片段-nologo-directoryid RUNTIMEFOLDER
"%WIX%\bin\heat.exe"项目"(SolutionDir(Application.WebUI\Application.WebUI.vbproj"-o"$(ProjectDir(ProjectOutputBinariesAndSymbols.wxs"-pog二进制文件-pog符号-ag模板片段-nologo-directoryid BINFOLDER
请记住,RUNTIME文件夹和BINFOLDER是我在主产品WXS文件中声明设置的目录。
为什么我不喜欢它
这种方法很烦人,因为在构建安装项目之前,我需要检查HEAT生成的片段WXS文件。另一个考虑因素是,它是一个web应用程序,我需要将二进制文件和符号放入与内容不同的目录(bin(中。
我的目标
我宁愿在Wix设置项目中使用项目引用,只需将Harvest属性设置为True。然后,我可以收获BinariesContentSatellites,以在我的片段中获得我需要的项目,然后设置一个可以在主产品WXS中引用的目录Id。问题是,这将把内容、二进制文件和符号放在同一个文件夹中,而我需要后两者放在嵌套的bin文件夹中。我不能两次添加这个项目参考,每次都有不同的收获选项。
我的问题
有没有办法做我想要做的事情,或者我需要继续进行预构建活动?顺便说一句,我考虑过在没有构建事件的情况下手动收获一次片段,然后根据需要重新收获。我宁愿避免这种做法。
回答您的主题"为什么我不喜欢它":我也有同样的问题,但后来我找到了解决方案。您不需要签入片段文件。只需物理添加文件,然后将其包含在您的项目中
注意:不要从项目中添加片段文件