У меня проблема с моим проектом WIX.Когда я делаю нормальную установку графического интерфейса, все работает как положено.Тем не менее, когда я делаю / q (тихую) установку, один из символов моего каталога не устанавливается.(Вероятно, потому что не было последовательности пользовательского интерфейса для тихой установки. Однако, меня удивляет, что именно я делаю неправильно.)
В моем файле Product.wxs у меня есть дерево каталогов, которое начинается следующим образом.:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder" Name="PFiles">
<Directory Id="COMPANY" Name="Company">
<Directory Id="BRANCHALL" Name="Branch">
<Directory Id="INSTDIR" Name="Replaced">
<Directory Id="BINDIR" Name="Bin">
Как раз под этим я устанавливаю каталоги, потому что наша установка приложения принимает идентификатор установки в качестве строки ввода пользователя, которая становится частью пути к каталогу.(Это также может быть передано в командной строке установки без вывода сообщений.) Следовательно, как раз под определением дерева каталогов выше, у меня есть:
<SetDirectory Id="INSTDIR" Value="[BRANCHALL]\[INSTID]" Sequence="execute" />
<SetDirectory Id="BINDIR" Value="[BRANCHALL]\[INSTID]\Bin" Sequence="execute" />
... и т. Д.
Когда я делаюпри автоматической установке журнал показывает следующее:
MSI (s) (F8:84) [20:55:29:702]: Product: ProductName - Instid -- Error 1606. Could not access network location \Instid.
Error 1606. Could not access network location \Instid.
Action ended 20:55:29: CostFinalize. Return value 3.
Action ended 20:55:29: INSTALL. Return value 3.
Property(S): UpgradeCode = {9AC2D8DF-5EF7-440B-A0D2-4A97FA62368C}
Property(S): INSTID = Instid
Property(S): BRANCHALL = C:\Program Files (x86)\Company\Branch\
Property(S): POWERSHELLEXE = C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
Property(S): BINDIR = \Instid\Bin
Обратите внимание, что, хотя зарегистрированное значение BRANCHALL является правильным, символ BINDIR пропускает значение BRANCHALL, но действительно получает значение INSTID.
Тот же самый фрагмент журнала, когда я запускаю установку с графическим интерфейсом (без вывода сообщений):
Property(C): UpgradeCode = {9AC2D8DF-5EF7-440B-A0D2-4A97FA62368C}
Property(C): INSTID = Instid
Property(C): BRANCHALL = C:\Program Files (x86)\Company\Branch\
Property(C): POWERSHELLEXE = C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
Property(C): LicenseAccepted = 1
Property(C): BINDIR = C:\Program Files (x86)\Company\Branch\Replaced\Bin\
Как ни странно, свойство BRANCHALL развивается, а INSTID - нет.Тем не менее, установка работает правильно и помещает все файлы в правильные папки.Поэтому INSTID, должно быть, разработал после того, как msiexec сделал эти журналы.
Если вам не хватает необходимой информации, пожалуйста, спросите меня.Я немного озадачен и, конечно, не эксперт по WIX.Спасибо!