1

C# 2005

xml 構成ファイルを読み取るカスタム アクションが必要なため、インストーラー クラスを使用しています。

そのため、ユーザーがセットアップをダブルクリックすると、同じフォルダーに config.xml ファイルが作成されます。インストール イベントでこの config.xml ファイルを読みたいと思います。このフォルダーには、setup.exe と config.xml が含まれます。

ただし、C:\windows\system32 の下で探しているため、config.xml ファイルが見つかりません。applicationstartup.pathを使用してこれを見つけました。ただし、setup と config.xml を含む setup フォルダーはデスクトップにあります。

現在の場所で探すと思っていました。どちらがセットアップフォルダーになります。

問題は、私のセットアップ フォルダーがインターネットからダウンロードされ、すべてのユーザーがそれをダウンロードして自分のコンピューターの任意の場所に解凍できることです。

on install イベントのコード スニペットを次に示します。

アドバイスをありがとう

protected override void OnAfterInstall(System.Collections.IDictionary savedState)
    {
        DataTable dt = new DataTable();
        MessageBox.Show(Application.StartupPath.ToString());
        dt.ReadXml("config.xml");

        MessageBox.Show(base.Context.Parameters["CAT_TargetDir"].ToString());
    } 
4

4 に答える 4

1

CAT_TargetDir代わりにタイプミスをしていないと仮定するとTARGETDIR、次の回避策を実行できます。CustomActionDataを設定し、カスタムアクションの引数としてTARGETDIRを渡します。これは最も洗練されたソリューションではありませんが、かなり簡単に機能するはずです。

于 2009-08-01T22:07:41.087 に答える
1

MSI について話していると仮定すると、それはOriginalDatabaseプロパティではありませんか?

于 2009-05-19T03:11:24.133 に答える
0

これを試すこともできます: MSI ソース ディレクトリからファイルをコピーする MSI カスタム アクションが必要です

于 2010-01-19T15:46:36.613 に答える
0

私はこれを解決することができました。

答えは、私のためにすべての作業を行う単純なバット ファイルを作成することでした。次に、bat ファイルがセットアップを呼び出し、アプリケーションをインストールします。

ありがとう、

于 2010-01-15T10:43:32.123 に答える