Visual studio 2010 当为WIX安装程序自动获取文件时,我的目录结构有多灵活?
请原谅我的无知——我一直在读一些书,但还没有准备好尝试任何东西 目前,我们有一个.wxs文件,无法轻松维护。无论何时从SVN提交/删除新文件,都会手动添加/删除所有文件。由于在创建一个新文件和更新.wxs安装文件之间不断出现问题,我们经常会破坏安装版本 因此,我希望自动获取解决方案中的文件。似乎概述了我想做什么,但它没有解决我的主要关切之一。也就是说,像这样获取文件是否允许定制目录结构,或者安装程序现在是否会在模拟我们的解决方案的位置安装文件 我正在努力实现从“自动检测新文件和文件夹”到“知道自动放置新文件的位置”的逻辑飞跃。是否有办法设置一些预定义操作,例如“此父文件夹下的所有文件和文件夹都应安装到[其他定义的目录]”Visual studio 2010 当为WIX安装程序自动获取文件时,我的目录结构有多灵活?,visual-studio-2010,wix,Visual Studio 2010,Wix,请原谅我的无知——我一直在读一些书,但还没有准备好尝试任何东西 目前,我们有一个.wxs文件,无法轻松维护。无论何时从SVN提交/删除新文件,都会手动添加/删除所有文件。由于在创建一个新文件和更新.wxs安装文件之间不断出现问题,我们经常会破坏安装版本 因此,我希望自动获取解决方案中的文件。似乎概述了我想做什么,但它没有解决我的主要关切之一。也就是说,像这样获取文件是否允许定制目录结构,或者安装程序现在是否会在模拟我们的解决方案的位置安装文件 我正在努力实现从“自动检测新文件和文件夹”到“知道自
谢谢。我正在ASP.net probject上使用WiX,并动态包含安装期间运行的所有网站文件和数据库脚本 我使用类似这样的热任务从解决方案中提取文件
<HeatDirectory
ToolPath="$(WixToolPath)"
Directory="$(WebRoot)"
GenerateGuidsNow="yes"
ComponentGroupName="MasterPlanWeb"
OutputFile="$(MSBuildProjectDirectory)\Setup\Product\Fragments\wwwfiles.wxs"
SuppressFragments="yes"
DirectoryRefId="WEBROOT"
KeepEmptyDirectories="yes"
PreprocessorVariable="var.WebRoot"
SuppressRegistry="yes"
SuppressRootDirectory="yes"
SuppressCom="yes" />
然后在我的主wix脚本中,这些被引用为
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="INSTALLLOCATION" Name="MasterPlan">
<Directory Id="WEBROOT" Name="wwwroot" />
<Directory Id="DATABASESRC" Name="databasesrc" />
</Directory>
</Directory>
如果第一个xml块中的DirectoryRefId和第二个xml块中的目录Id是相同的,则这两部分之间的链接
因此,基本上,直接在我的目录下的解决方案结构是复制的,但是我可以更改根目录
例如,如果我在c:\mywebsite上运行HEAT,并且该目录包含
- \人
- \帐目\
- \剧本\
- c:\test\people\
- c:\test\accounts\
- c:\test\scripts\
例如,如果您确实希望子目录的所有数据都放在根目录下,您可以在每个文件夹上执行循环,并运行相同的命令,为所有子目录指定相同的DirectoryRefId。+1用于显示HeatDirectory任务。到目前为止,我读到的所有其他问题都只谈到将heat.exe作为预构建任务运行。