【问题标题】:Change the RootDrive in Xml with the path specified in .ini file使用 .ini 文件中指定的路径更改 Xml 中的 RootDrive
【发布时间】:2022-01-11 12:35:09
【问题描述】:

我正在开发 WIX 安装程序。我正在尝试从 .ini 文件读取目录路径到 XML。我必须将路径变红并将文件安装到该特定路径。

    <Property Id="ROOTDRIVE">
        <![CDATA[*value which is read from .ini file has to be passed here*]]>
    </Property>
    <Property Id="MY_PROPERTY">
      <IniFileSearch Id="myIniSearch" Name="localtest.ini" Section="ENVIRONMENT" Key="LocalDirectory" Type="raw">
        <DirectorySearch Id="SPIniFilePath" Path="C:\">
          <FileSearch Id="SPIniFile" Name="localtest.ini"/>
        </DirectorySearch>
      </IniFileSearch> />
   </Property>

  <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir" >
      <Directory Id="myIniSearch">
        <Directory Id="INSTALLFOLDER" Name="!(bind.property.ProductName)" />
      </Directory>
   </Directory>
  </Fragment>

localtest.ini 是 .ini 文件。在C盘里

    [ENVIRONMENT]
    LocalDirectory=D:\Ng

文件应安装到 .ini 文件中指定的路径。接下来我添加了 CustonAction。它仍然安装在C盘中

    <Property Id="MY_PROPERTY" Secure="yes">
      <IniFileSearch Id="myIniSearch" Name="localtest.ini" Section="ENVIRONMENT" Key="LocalDirectory" Type="raw">
        <DirectorySearch Id="SPIniFilePath" Path="C:\">
          <FileSearch Id="SPIniFile" Name="localtest.ini"/>
        </DirectorySearch>
      </IniFileSearch> 
    </Property>
<CustomAction Id="MyAction.SetProperty" Return="check" Property="MyAction" Value="[MY_PROPERTY]" />
<InstallExecuteSequence>
  <Custom Action="MyAction.SetProperty" After="AppSearch" />
</InstallExecuteSequence>
<DirectoryRef Id='MY_PROPERTY'>
  <Directory Id='INSTALLDIR_SimpleWebApp' Name='SimpleWebApp' />
</DirectoryRef>

【问题讨论】:

    标签: c# .net xml wix ini


    【解决方案1】:

    从您的代码看来,MY_PROPERTY 将设置为在 ini 文件中找到的目录(如果找到)。在这种情况下,如果 MY_PROPERTY 不为空,请安排类型 51 自定义操作(在 AppSearch 之后)将“INSTALLFOLDER”设置为值“[MY_PROPERTY]!(bind.property.ProductName)”。

    (我相信你可以去掉 ROOTDRIVE 和 myIniSearch 属性)

    【讨论】:

    • 我已经添加了自定义操作。它仍然安装在 C 驱动器中,而不是我在 .ini 文件中指定的路径中
    • 我已将 .ini 文件放在 C: 驱动器中。我把它放在 C:\Windows 中,它工作了。
    猜你喜欢
    • 2017-12-15
    • 2020-12-15
    • 2022-01-15
    • 2021-10-22
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    相关资源
    最近更新 更多