2017-02-20 11 views
0

以下は私のコードです。 MSIファイルの実行後に.infと.cerファイルをインストールする必要があります。私は様々なwixリソースを参照しようとしましたが、何も見つかりませんでした。インストーラを仮想マシンでテストしていますが、動作しないようです。私は新しいことを勉強しています。コードを見て、間違いを指摘することで、これに関する助けが必要です。WindowsインストーラXML(WIX)Help:exeCommandでシェルコマンドを実行できません

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Product Id="*" Name="Cal" Language="1033" Version="1.0.0.0" Manufacturer="Cal" UpgradeCode="my-code"> 
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> 




    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 
    <MediaTemplate EmbedCab="yes" /> 


    <Feature Id="ProductFeature" Title="Cal" Level="1"> 
     <ComponentGroupRef Id="ProductComponents" /> 

    </Feature> 
    <!--<CustomActionRef Id="InstallAction1" />--> 
    </Product> 

    <Fragment> 
    <Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="ProgramFilesFolder"> 
     <Directory Id="INSTALLFOLDER" Name="Cal" /> 
     <Directory Id="SilInst" Name="BackInst"> 
     </Directory> 
     </Directory> 
    </Directory> 
    </Fragment> 

    <Fragment> 
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> 

     <Component Id="P2"> 
     <File Source="C1.sys" /> 
     </Component> 


     <Component Id="P6"> 
     <File Source="C1.inf" /> 
     </Component> 
     <Component Id="P7"> 
     <File Source="C1.cer" /> 
     </Component> 

    </ComponentGroup> 
    </Fragment> 
    <Fragment> 
    <CustomAction Id='InstallAction1' Directory='INSTALLFOLDER' ExeCommand='RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 C1.inf' Execute='deferred' 
         Return='check'/> 
    <CustomAction Id='InstallAction2' Directory='INSTALLFOLDER' ExeCommand='certutil -addstore C1.cer -s -r localMachine trustedpublisher' Execute='deferred' 
        Return='check'/> 


    <InstallExecuteSequence> 
     <Custom Action="InstallAction2" After='InstallFiles'/> 
    <Custom Action="InstallAction1" After='InstallAction2'/> 
    </InstallExecuteSequence> 
    </Fragment> 
</Wix> 
+0

Orcaまたは代わりにMSIを開き、カスタムアクションがある場合はInstallExecuteSequenceテーブルをチェックインしてください。 –

+0

ドライバのインストールでは、Difxapp拡張機能の使用を検討する必要があります。http://wixtoolset.org/documentation/manual/v3/xsd/difxapp/driver.html –

答えて

0

トラブルシューティングするには、インストールログを作成し、カスタムアクションIDを検索します。 通常、マシンにドライバと証明書をインストールするには、昇格された権限が必要です。したがって、カスタムアクションにはImpersonate="no"を使用してください。 How to run a Custom Action inside an MSI created in WiX with elevated privileges?

関連する問題