2017-01-12 12 views
0

Я довольно новичок в Wix.Основой каталога установки на ProductCode

Я начал с этим примером:

https://helgeklein.com/blog/2014/09/real-world-example-wix-msi-application-installer/

Он имеет вычислительную процедуру, выяснял INSTALLDIR, используя переменные (на самом деле, языковую информацию, как показано ниже).

<!-- All folders from here on are relative to their parent. --> 

<Directory Id="ProgramFilesHK" Name="!(loc.ManufacturerName)"> 

    <!-- INSTALLDIR is a property name. We need it later for the UI (to be able to change the install dir. --> 
    <Directory Id="INSTALLDIR" Name="!(loc.ApplicationName)"> 

Который (в данном примере) решает:

C: \ Program Files (x86) \ Helge Klein \ uberAgent \

Пытаюсь чтобы сделать ProductCode (последней) вложенной папкой всех вложенных подпапок.

Aka, я хочу:

C: \ Program Files (x86) \ Helge Klein \ {22222222-2222-2222-2222-222222222222} \

Я нашел это:

Obtaining generated ProductCode as a variable in Wix

Таким образом, я попытался изменить код:

 <!-- INSTALLDIR is a property name. We need it later for the UI (to be able to change the install dir. --> 
     <Directory Id="INSTALLDIR" Name="[PRODUCTCODE]"> 

, а также

 <Directory Id="INSTALLDIR" Name="[ProductCode]"> 

К сожалению, это дает мне

C:\Program Files (x86)\Apps\CCT\[ProductCode]\ 

, а не значение Guid для фактического ProductCode

Почему я это делаю?

Я делаю Instance устанавливает и

<Property Id="INSTANCEID" Value="0"/> 
    <InstanceTransforms Property="INSTANCEID"> 
    <Instance Id="I01" ProductCode="{22222222-2222-2222-2222-222222222222}" ProductName="My Product 01"/> 
    <Instance Id="I02" ProductCode="{33333333-3333-4f1a-9E88-874745E9224C}" ProductName="My Product 02"/> 
    <Instance Id="I03" ProductCode="{44444444-4444-5494-843B-BC07BBC022DB}" ProductName="My Product 03"/> 
    </InstanceTransforms> 

и эта статья

http://ysdevlog.blogspot.com/2011/08/revisited-multiple-instance.html

говорит, что это:

Для данных файлов, это означает, что установка файлы каждый экземпляр до в другом месте - путь, содержащий inst ance ID как его часть подходит лучше всего.

Как я могу «получить» ProductCode в этой «вычислительной» логике установки-каталогов?

Спасибо.

Недоступный тег: Wix версия 3.10

Примечание о дубликате вопроса «тег».

Это не то же самое, что и Wix Installer - Create Folder hierarchy based on Property, потому что значение Макрона фактически разрешается.

Проблема в том, что значение макроса не разрешается.

+0

Возможный дубликат [Wix Installer - Создание иерархии папок на основе собственности] (http://stackoverflow.com/questions/12478566/wix-installer- create-folder-hierarchy-based-on-property) –

+0

Я добавил комментарий о том, как другой вопрос не является дубликатом. – granadaCoder

+0

Возможно, пользовательское действие для обновления INSTALLDIR с помощью [ProductCode] – mcdon

ответ

0

Можете ли вы добавить это в свои wxs и посмотреть, работает ли это?

<CustomAction Id="SetInstallDir" Property="INSTALLDIR" 
       Value="[PRODUCTCODE]" 
       Execute="firstSequence" /> 

И в <InstallExecuteSequence> тэгом:

<Custom Action="SetInstallDir" Before="CostFinalize">INSTALLDIR=""</Custom> 
+0

У вас есть шанс попробовать это? сделала это? – Isaiah4110

 Смежные вопросы

  • Нет связанных вопросов^_^