0

インストーラーは、レジストリから値を読み取り、インストール パスをその値の親に設定する必要があります。

たとえば、レジ​​ストリから次を取得します。

D:\apps\client

次に、インストーラーはアプリをインストールする必要があります

D:\apps

[DIR]\..\(「Directory」または「CustomAction」で)試しましたが、インストール時に次のエラーが表示されます。

Error 1324. The folder path '..' contains an invalid character.

WiXでこれを行うにはどうすればよいですか?

4

2 に答える 2

3

ピュアウィックスではできないようです。カスタム アクション タイプ 1を使用できます。「LaunchConditions」アクションの前に即時モードで実行します。次のように、wix-code の新しいプロパティのどこかを初期化します。

<Property Id="DIRFROMREG" Value="0" Secure="yes">  

C# のサンプルは次のとおりです。

 public class CustomActions
{
    [CustomAction]
    public static ActionResult DirectorySearchAction(Session session)
    {
        try
        {
            session.Log("Directory search");
            RegistryKey reg = Registry.LocalMachine.OpenSubKey(@"...your subkey...");
            if (reg != null)
            {
                var dir=reg.GetValue("...your value...");
                /*
                    var parentdir= split here your directory
                */
                session["DIRFROMREG"] =parentdir;
                session.Log(@"directory is ");
            }
            else
            {
                session.Log(@"The registry key is not found");
            }
        }
        catch (Exception e) 
        {
            session.Log(@"Error "+e);
        }
        return ActionResult.Success;
    }
}

そして最後に:

<SetProperty Id="INSTALLLOCATION" Value="[DIRFROMREG]" After="Your custom action">NOT DIRFROMREG=0</SetProperty>

お役に立てれば。

于 2012-08-22T05:30:29.793 に答える