1

Installscript を使用したインストール中に、インストーラーの INSTALLDIR 値を変更したいと考えています。どうすればいいですか?私はすでに次のことを試しました:カスタムアクションを次のように作成しました:

function InitializeValues(hMSI)
    STRING svProductName; 
    STRING svInstallDir;  
    NUMBER nvSize;
begin                        
    nvSize=255; 
    MsiGetProperty (hMSI, "ProductName", svProductName, nvSize);  
    if(svProductName = "Notepad Pro") then  
         svInstallDir = PROGRAMFILES ^ svProductName;
 //     MsiSetTargetPath(hMSI,INSTALLDIR,svInstallDir);      
        MsiSetProperty(hMSI,INSTALLDIR,svInstallDir);
        MessageBox(INSTALLDIR,INFORMATION);
    endif;
end;

カスタム アクションは実行されますが、INSTALLDIR の値は変わりません。コスト ファイナライズ前の UI シーケンスとコスト ファイナライズ後の実行シーケンスでカスタム アクションをスケジュールしました。

助けてください。

4

1 に答える 1

5

InstallUISequence と InstallExecuteSequence の両方で、CostFinalize の前にカスタム アクションを実行する必要があります。また、MsiSetProperty はそのようには使用されず、InstallScript では機能しないと思います。

次を使用して試すことができます:

INSTALLDIR = svInstallDir

また

MsiSetProperty(hMSI, "INSTALLDIR", svInstallDir);
于 2011-05-18T06:21:29.627 に答える