4

インストールに必要なすべてのセットアップパッケージ(msis、cabs、exes)を埋め込んだWiXカスタムMBAを作成しました。ただし、インストールする必要のあるパッケージをダウンロードする軽量のWebブートストラッパーを作成したいと思います。基盤となるWiXブートストラッパーエンジンで無料で入手できると思いましたが、私は間違っていたと思います。

ResolveSourceイベントをサブスクライブして、パッケージのダウンロードURLを取得し、ローカルソースの場所にダウンロードしようとしましたが、「ファイルのソースを解決できませんでした」というエラーでインストールが失敗するため、その時点ではプロセスが遅すぎるようです。 "(ダウンロードは成功しましたが)。

私が試したことのサンプル:

private void OnResolveSource(object sender, ResolveSourceEventArgs e)
{  
    string localSource = e.LocalSource;
    string downloadSource = e.DownloadSource;

    if (!File.Exists(localSource) && !string.IsNullOrEmpty(downloadSource))
    {
        try
        {
            using (WebClient webClient = new WebClient())
            {
                webClient.DownloadFile(e.DownloadSource, e.LocalSource);
            }
        }

        catch (ArgumentNullException ex)
        {
            e.Result = Result.Error;
        }

        catch (WebException ex)
        {
            e.Result = Result.Error;
        }
    }
}
4

1 に答える 1

7

Wixユーザーのメーリングリストでこれに答えてくれたRobMenschingに感謝します。

提供されたURLのパッケージ(作成されたものが最も簡単ですが、プログラムですべてを設定できます)を確認してから、ResolveSource呼び出しからIDDOWNLOADを返します。

コードを次のように編集しました。

private void OnResolveSource(object sender, ResolveSourceEventArgs e)
{
    if (!File.Exists(e.LocalSource) && !string.IsNullOrEmpty(e.DownloadSource))
        e.Result = Result.Download;
}

結果をに設定するとResult.Download、ブートストラッパーエンジンにパッケージをダウンロードするように指示されます。自分でファイルをダウンロードする必要はありません。

于 2013-02-01T19:49:15.267 に答える