11

イントラネット Web サービス URL などのさまざまな便利な設定を保存するために user.config に依存する .NET WinForms アプリケーションを開発しています。インストールの一部としてカスタム初期設定をインポートできるようにしたいと考えています。これの使用例は、企業がソフトウェアをインストールしたい 100 台のマシンを持っていて、それらすべてが問題のイントラネット Web サービスへの参照を持っている必要がある場合です。これは、すべてのマシンで手動で設定する必要はありません。

現在、VS2008 セットアップ プロジェクトを使用してインストール パッケージを生成しています。

これまでのアイデアは、インストーラーが (テンプレートからの) 情報を使用してカスタムの初期 .config ファイルを作成できるようにし、セットアップ プロジェクトがインストールする既定のファイルの代わりにそれを配置することでした。

ただし、これらのいくつか以外にこれを行う方法がわかりません。

  1. ConfigurationManager クラスを使用して .config ファイル パスを決定するために、実行可能ファイル名をカスタム インストーラー アクション (System.Configuration.Install.Installer から派生) にハードコーディングします。実行可能ファイル名が変更された場合、インストーラーを手動で変更する必要があります。
  2. 独自の構成クラスまたはファイル/フォルダー階層をロールして、設定を保存します。私の理解が正しければ、これは基本的に、.NET が提供する分離メカニズム (ここでは障害でもあります) の利点から私たちを締め出します。

上記の2つをおいしくする方法、または代替案を知っている人はいますか?

答えは「これをしないでください。メカニズムの精神を打ち負かし、独自の設定インポートメカニズムをロールバックします」かもしれません。

4

3 に答える 3

3

大企業向けにこのアプリケーションを作成する場合は、Group Policyを確認する必要があります。残念ながら、アプリケーションをレジストリの黄金時代に戻してしまいます。これがあなたのプログラムに大きな変化をもたらすことは理解していますが、これがその方法です。

ただし、Web サービスの URL が唯一のものである場合は、このように設定する必要があり、GPO はやり過ぎかもしれません。その場合、実行可能ファイルの名前をハードコーディングします。

于 2008-10-02T18:11:51.833 に答える
1

それがあなたが探している答えではないことはわかっていますが、より「本格的な」インストーラーを選択する必要があります。私たちは Advanced Installer を使用していますが、思いつく限りのことをすべて行うことができます。

于 2008-09-16T21:35:53.777 に答える
0

構成ファイルに少なくとも 1 つの設定をハードコードすることが許容される場合は、これを使用して、すべてのカスタム構成設定を保存できるデータベース、Web サービス、またはネットワーク ファイル パスを指定できます。System.Configuration.ConfigurationManager.OpenExeConfiguration() を使用すると、最初の実行時またはアプリケーションが起動するたびに、この場所から構成ファイルを更新できます。

于 2008-10-01T09:11:15.370 に答える