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