Заменить ProgramFiles64Folder целевым каталогом? Wix - PullRequest
0 голосов
/ 27 мая 2020

Хорошо, я определил, в чем была предыдущая проблема. У меня есть этот фрагмент

<Directory Id="TARGETDIR" Name="SourceDir">

  <!-- Start Menu Directory -->
  <Directory Id="ProgramMenuFolder">
    <Directory Id="InstallProgramMenuFolder" Name="!(loc.ProductName_Folder)"/>
  </Directory>

  <?if $(var.Platform)=x64?>
    <!-- Program files folder -->
    <Directory Id="ProgramFiles64Folder">
      <Directory Id="APPLICATIONROOT" Name="!(loc.ProductName_RootFolder)">
        <Directory Id="INSTALLFOLDER" Name="!(loc.ProductName_Folder)" />
      </Directory>
    </Directory>
  <?else?>
    <!-- Program files folder -->
    <Directory Id="ProgramFilesFolder">
      <Directory Id="APPLICATIONROOT" Name="!(loc.ProductName_RootFolder)">
        <Directory Id="INSTALLFOLDER" Name="!(loc.ProductName_Folder)" />
      </Directory>
    </Directory>
  <?endif?>

</Directory>

Теперь для версии пользовательского интерфейса вы можете просто изменить каталог, который хотите (по умолчанию C: \ Program Files \ RootFolder \ AppRootFolder), но если я попробую использовать

msiexec /i "mymsi.msi" TARGETDIR="C:\test", then it still installs in Program Files. What I have determined, is regardless what you specific TARGETDIR as, it'll install C:\Program Files\RootFolder\AppRootFolder\.

Я думаю, мне нужно заменить ProgramFiles64Folder ID на все, что пользователь вводит с помощью командной строки, если они действительно что-то предоставили, но вопрос в том, как могу я проверить, предоставили ли они что-нибудь? Я полагаю, я мог бы создать свойство publi c и назвать его «USERDEFPATH» или что-то в этом роде, затем вы можете добавить это как параметр в msiexe c, но тогда как я могу сделать оператор if, чтобы сказать: «если USERDEFPATH не пустой, используйте его вместо ProgramFiles64Folder, иначе используйте ProgramFiles64Folder "? ЕСЛИ это имело смысл ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...