5

VS 2008 を使用して ac# Windows プロジェクトのインストーラーを作成しています。ファイル サーバーに保存されている MSI ファイルのソース ディレクトリから設定ファイルをコピーするカスタム アクションを作成しようとしています (例: \server\fileshare\myappinstaller \mysetting.xml) を、アプリケーションがインストールされているコンピューターのターゲット ディレクトリ (例: C:\Program Files\My App) にコピーします。

設定ファイルには、アプリをインストールする顧客に固有の設定が含まれているため、インストーラーに追加することはできません。

そのようなカスタム アクションのコード (できれば C# または VB.NET) を持っている人はいますか? または、カスタム アクション内で MSI ソースの場所 (\server\fileshare\myappinstaller など) を取得する方法を知っている人はいますか。

どうもありがとう

4

4 に答える 4

5

追加することでこれを解決しました

/InstallerPath="[元のデータベース]"

カスタム アクションの CustomActionData (セットアップ プロジェクトの [カスタム アクション] タブ内) に追加し、カスタム アクションで次のコードを使用して値を読み取ります。

    Public Overrides Sub Commit(ByVal savedState As System.Collections.IDictionary)
        MyBase.Commit(savedState)

        Dim directoryOfMSI As String = IO.Path.GetDirectoryName(Context.Parameters("InstallerPath"))

        'Do your work here
        '...

    End Sub

チャオ!ステファン

于 2010-01-19T15:40:50.963 に答える
2

インストールするコンポーネントの1つとして、XMLファイルをインストーラーに追加することをお勧めします。これが最も簡単な方法であり、カスタムアクションは必要ありません。

WiXはあなたのためのオプションかもしれません。XmlConfigを使用して、インストール中にXML構成ファイルをカスタマイズできます。

于 2008-12-15T12:41:47.733 に答える
1

私も同様のことを行いますが、MSI ファイル内に既定の構成を含めてから、MST を使用してカスタム構成ファイルを追加します。すべてが Windows インストーラーに「ネイティブ」であるため、はるかに信頼性が高く、各顧客に小さなカスタム MST を送信するだけで済みます。

これを行う方法の詳細については、MSI 内の小さなファイルを置き換える最も簡単なソリューションで見つけることができますか?

于 2008-12-16T02:05:45.003 に答える
0

通常、WindowsInstaller のカスタム アクションは、msi のテーブルから何かを使用して、msi の任意のテーブルに何かを配置します。

さらに、WindowsInstaller チームは、インストーラーの管理対象の拡張機能を拒否します。その理由は、ネット上のあらゆる場所で見つかります。

しかし、しばらく前に、 WiXで使用可能な WindowsInstallers の管理されたカスタム アクションを作成する拡張機能を見つけましたが、その作業の上に新しいソリューションがあり、管理されたカスタム アクションを許可する WiX の実際の拡張機能です。

于 2008-12-15T12:49:51.880 に答える