0

私はwxsにこの構成を持っています

<CustomAction Id="UninstallDriver" BinaryKey="Setup.CustomActions.dll"
              DllEntry="UninstallDriver" Execute="immediate" Return="check"/>
<Custom Action="UninstallDriver" After="InstallInitialize">Installed AND (NOT REINSTALL)</Custom>

カスタムアクション:

  /// <summary>
    /// Uninstall driver
    /// </summary>
    /// <param name="session"></param>
    /// <returns></returns>
    [CustomAction]
    public static ActionResult UninstallDriver(Session session)
    {
        try
        {
            session.Log("Start unistalling redirect driver");
            var toolPath = GetPathToFile(session, @"%INSTALLLOCATION%Tools.exe");
            session.Log("Path for tools={0}", toolPath);
            if (!File.Exists(toolPath))
            {
                session.Log("Can't find Tools.exe at specified location");
                return ActionResult.Failure;
            }
            var proc = Process.Start(toolPath);
            proc.StartInfo.Arguments = @"/uninstall";
            proc.Start();
            var exited = proc.WaitForExit(10000);
            if (exited && proc.ExitCode == 0)
            {
                session.Log("Driver uninstall completed");
                return ActionResult.Success;
            }
        }
        catch (Exception ex)
        {
            session.Log("Error while uninstalling driver={0}", ex.Message);
        }
        return ActionResult.Failure;
    }

そして、アンインストール時にこのカスタムアクションを呼び出すと、「このインストールを完了するために必要な DLL を実行できませんでした」というメッセージが表示されます。しかし、x86 用の Tools.exe をビルドしても問題は発生しませんでした。64x ビット バージョンで動作させるにはどうすればよいですか?

4

0 に答える 0