У меня проблема с настраиваемыми действиями WiX и C ++. DLL: в своем настраиваемом действии я создаю файл и при отладке получаю отказ в доступе.
Файл WiX:
<CustomAction Id="ChangeConfig"BinaryKey="PcmConfig"DllEntry="ModifyConfigFile"Execute="immediate"Return="check"HideTarget="no" />
<InstallExecuteSequence>
<Custom Action="ChangeConfig" Before="InstallFinalize" />
</InstallExecuteSequence>
Метод пользовательских действий:
HANDLE hFile = CreateFile(L"c:\Temp.txt", // name of the write
GENERIC_WRITE,
0,
NULL,
CREATE_NEW,
FILE_ATTRIBUTE_NORMAL,
NULL);
Я видел, что некоторые люди предлагали изменить запуск на отложенный, а атрибут Impersonate установить на «нет», похоже, он вообще не вызывал функцию настраиваемого действия.
Есть идеи? Заранее спасибо!
Вы пытались добавить дополнительную косую черту, чтобы сделать ее «C: \\ Temp.txt», или форматирование stackoverflow удалило ее из вставленного кода? Если это не сработает, попробуйте создать папку C: \ Temp \, так как я видел, как некоторые ОС (или групповые политики) защищают эту корневую папку от создания новых файлов (но допускают копирование файлов в нее), в то время как sub папкам было разрешено создавать новый файл.
HANDLE hFile = CreateFile(L"c:\\Temp.txt", // name of the write
GENERIC_WRITE,
0,
NULL,
CREATE_NEW,
FILE_ATTRIBUTE_NORMAL,
NULL);