У меня есть MSI, который отлично работает при установке локально. Если путь данных задан в сетевом расположении, он терпит неудачу.Wix MSI не работает при настройке разрешений на сетевой путь (использование: PermissionEx)
Соответствующие LOG:
MSI (s) (BC:4C) [17:01:57:322]: Executing op: ActionStart(Name=ExecSecureObjects_64,,)
MSI (s) (BC:4C) [17:01:57:322]: Executing op: CustomActionSchedule(Action=ExecSecureObjects_64,ActionType=3073,Source=BinaryData,Target=ExecSecureObjects,CustomActionData=\\ravel\TeamData\lrieger\Tim2015Pre_Data\CreateFolderEveryone-1073741824C:\ProgramData\Nemetschek Engineering\TIM 2015.0.0.477590057-pre\CreateFolderEveryone-1073741824)
MSI (s) (BC:78) [17:01:57:324]: Invoking remote custom action. DLL: C:\Windows\Installer\MSIAEDE.tmp, Entrypoint: ExecSecureObjects
MSI (s) (BC:A8) [17:01:57:324]: Generating random cookie.
MSI (s) (BC:A8) [17:01:57:325]: Created Custom Action Server with PID 4488 (0x1188).
MSI (s) (BC:60) [17:01:57:335]: Running as a service.
MSI (s) (BC:60) [17:01:57:337]: Hello, I'm your 64bit Elevated custom action server.
ExecSecureObjects: Error 0x80070005: failed to get security info for object: \\ravel\TeamData\lrieger\Tim2015Pre_Data\
CustomAction ExecSecureObjects_64 returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
MSI (s) (BC:4C) [17:01:57:393]: Note: 1: 2265 2: 3: -2147287035
MSI (s) (BC:4C) [17:01:57:393]: User policy value 'DisableRollback' is 0
MSI (s) (BC:4C) [17:01:57:393]: Machine policy value 'DisableRollback' is 0
Action ended 17:01:57: InstallExecute. Return value 3.
WIX Код:
<Component Directory="DATA_DIRECTORY">
<RegistryValue Root="HKLM" Key="$(var.RegRoot)\Setup" Name="TIM_DATA_DIRECTORY" Value="0xff" Type="string" />
<CreateFolder>
<util:PermissionEx User="Everyone" GenericRead="yes" GenericWrite="yes" Domain="[LOGONDOMAIN]" />
</CreateFolder>
</Component>
Без util:PermissionEx
он работает на сетевом ресурсе, но установка этих разрешений является требование, по крайней мере, если целевой каталог является локальным ,
Вопрос: Возможно ли установить разрешения в сети с помощью wix/msi?
Если нет, как я могу определить, что это сетевой каталог?
Или есть ли в MSI любой способ пометить компонент как разрешенный?
Если это не представляется возможным делать какие-либо из вышесказанного, я, возможно, потребуется написать пользовательское действие, которое пытается установить разрешения, но подавляет любые неудачи ...
Спасибо. Я использую Burn как Bootstrapper, который поднимает MSI при запуске, поэтому не-олицетворенный CA должен работать повышенным. Я попробую и отправлю обратно. –
Использование (не вылитой) C# CA работает, спасибо еще раз. –