Wix: Создать файл в DLL пользовательских действий

У меня проблема с настраиваемыми действиями 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 установить на «нет», похоже, он вообще не вызывал функцию настраиваемого действия.

Есть идеи? Заранее спасибо!

0

Решение

Вы пытались добавить дополнительную косую черту, чтобы сделать ее «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);
0

Другие решения