2012-12-20 117 views
1

我試圖在wix安裝期間執行自定義操作,並在自定義操作被調用時出現錯誤。我想通過完全控制將權限組「Everyone」添加到使用cacls的文件夾中。當我從cmd運行它時,它工作正常,但從安裝程序它不起作用。以下是wix安裝日誌中的錯誤消息。Wix自定義操作執行cmd不起作用

信息1721.此Windows安裝程序包存在問題。此安裝完成所需的程序無法運行。聯繫您的支持人員或軟件包供應商。 Action:SetPermissions,location:,command:「c:\ Windows \ SysWOW64 \ cmd.exe」cacls「c:\ Program Files \ Test」/ g everyone:f/e

這是我在wix中的自定義操作文件

<CustomAction Id="SetPermissions" Property="PermissionsAction" ExeCommand="&quot; [SystemFolder]cmd.exe&quot; cacls &quot;[Folder].&quot; /g everyone:f /e" Execute="immediate" Return="ignore" /> 
<CustomAction Id="PermissionsAction" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/> 
<InstallExecuteSequence> 
    <Custom Action="SetPortalDataPermissions" Before="InstallFinalize"> 
    </Custom> 
</InstallExecuteSequence> 

回答

4

你可以做你想做的內維克斯做什麼沒有自定義操作:

<CreateFolder Directory="DirectoryToSetPermissions"> 
<util:PermissionEx User="Everyone" GenericAll="yes" /> 
</CreateFolder> 

要使用的Util擴展名必須添加到WixUtilExtension集的引用和UtilExtension命名空間添加到Wix標籤在您的wsx文件中,如下所示:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> 
+0

非常感謝,我在嘗試使用自定義操作之前嘗試過類似的操作,但未包含 user1334589

+1

很高興它的工作,任何使WiX旅程更容易..;) –