我对使用中的.wxs
文件创建安装项目很陌生。NET项目。我知道,默认情况下,当你运行MSI文件时,它会在C:Program Files (x86)
中创建带有该项目的文件夹及其引用文件(dll、exe等(。我的问题是,我可以使用XML将.wxs
文件中的这个位置更改为另一个位置吗。
ConfigurationDirectory
:您可以使用FeatureElement的ConfigurableDirectory
属性来设置可配置的功能目录。请参阅下面屏幕截图部分的页面:如何在WIX中为目录分配路径值?。
仅实物模型 :
注意:我基于标准的WiX Mondo对话框集要连接Mondo对话框,请参阅此答案。本质上,添加对WixUIExtension.dll
的引用,并插入<UIRef Id="WixUI_Mondo" />
元素。这将在MSI中编译一个默认的WiX对话框集。
<Feature Id="MyFeature" Title="MyFeature" Level="1" ConfigurableDirectory="INSTALLFOLDER"></Feature>
<..>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="InstallDirConfigurableTesting">
记住属性:请注意,您必须将自定义目录位置保存到注册表中,并在重大升级时读回,否则您的整个产品在升级过程中会被"移动"(我知道,这很奇怪(。据我所知,这种坚持不会自动神奇地发生。您可以使用WiX创建者和慈善人士Rob Mensching在此处描述的"记住模式"来持久化属性并将其读回:WiX工具集的"记住属性"模式。
实现提示:为主要升级场景测试目录属性的读回可能有点麻烦。如果您使用Votive在Visual Studio中创建测试项目,您可以使用该技巧只编译MSI的版本1(现在在生成输出文件夹中的MSI文件后缀为 一些进一步的链接:_Version1.0.0.msi
或类似(,然后启用版本号属性的前三位数字之一,生成升级版本(后缀为_Version2.0.0.msi