2008-09-16 5 views
11

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

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

これまでのアイデアは、(テンプレートからの)情報でカスタム初期.configファイルを作成し、セットアッププロジェクトがインストールするデフォルトのものではなく、その場所に配置することができました。

しかし、私はこれらのいくつかよりも、この他を行う方法を参照することはできません。

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

誰にも分かることはありますか?上記の2つの方法を選択する方法はありますか?

私は答えができる、「これをしない、それはあなた自身の設定のインポートメカニズムをロール、メカニズムの精神に反する」恐れます。

答えて

1

私が知っているのはあなたが探している答えではありませんが、より深刻なインストーラを選択する必要があります。私たちは高度なインストーラーを使用しています。それは爆発的なもので、あなたが考えることができるものは何でもありません。

+0

.netは "重大な"インストーラが無駄に見えるxcopyです。私たちは約2日間で独自のXMLスクリプトインストーラを作成しました。必要なものすべてを実行するだけでなく、簡単に拡張することができます。 – Bill

+3

インストーラを書くのに2日間かかりますか? ;-) – blak3r

0

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

3

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

しかし、WebサービスのURLは唯一のものであるならば、あなたはセットアップには、この方法を持って、その後、GPOはやり過ぎかもしれません。その場合、私は実行ファイルの名前をハードコードします。

関連する問題