Wix:在自定义操作DLL中创建文件

时间:2015-02-03 20:11:17

标签: c++ dll wix custom-action

我在使用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);

我看到有人建议将更改设置为deferred和Impersonate属性设置为&#34; no&#34;,它似乎根本没有调用自定义操作功能。

有人有想法吗?提前谢谢!

1 个答案:

答案 0 :(得分:0)

您是否尝试添加额外的斜杠来制作它&#34; C:\\ Temp.txt&#34;或者stackoverflow格式是否从粘贴的代码中删除它?如果这不起作用,请尝试创建C:\ Temp \文件夹,因为我已经看到某些操作系统(或组策略)保护该根文件夹不会创建新文件(但允许文件到被复制到其中),同时允许子文件夹创建一个新文件。

HANDLE hFile = CreateFile(L"c:\\Temp.txt", // name of the write
                      GENERIC_WRITE,
                      0,
                      NULL,
                      CREATE_NEW,
                      FILE_ATTRIBUTE_NORMAL,
                      NULL);