WIX:从c#类参数更改安装目录?

时间:2013-09-10 10:34:35

标签: c# winforms wix wix3.7

我正在创建一个安装向导,我有一个页面,您可以在其中选择要安装程序的位置。在我的c#类中,我有InstallPath,它保存了我想要安装程序的确切目录。

默认情况下,它是c:\ Program Files。

在我的WiX设置文件中,我有:

<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
      <Directory Id ="Folder" Name="SomeFolder"/>
    </Directory>
</Directory>

我的问题是我不知道如何告诉这个Wix设置在InstallPath中安装。 例如,如果InstallPath更改为D:\ SomeFolder \ Here 我想在那里再安装不在程序文件中。

2 个答案:

答案 0 :(得分:1)

您可以使用以下自定义操作之一在安装期间更改属性值:

  1. 自定义操作,用于更改在CostFinalize
  2. 之前计划的目录属性值
  3. 类型35自定义操作,用于更改目录路径(应在CostFinalize之后安排)
  4. 例如:

    <CustomAction Id="ChangeDir" Directory="INSTALLFOLDER" Value="[SomeValueorPropertyhere]"/>
    

    2.在InstallExecution阶段安排行动(必须在CostFinalize步骤之后):

    <Custom Action="ChangeDir" After="CostFinalize"></Custom>
    

答案 1 :(得分:0)

改变路径是:

<Product Id="*"> 
    <Property Id="ROOTDRIVE">
        <![CDATA[D:\]]>
    </Property>
</Product>

并且对于新路径D:\ SomeFolder \ Here,将会是这样的。

<Directory Id="TARGETDIR" Name="SourceDir">
    <Directory Id="SomeFolder" Name="SomeFolder">
        <Directory Id="INSTALLFOLDER" Name="Here"/>
    </Directory>
</Directory>

问候,