1

私の質問は、この既存の質問にリンクされているようなものです

ユーザーごとのカスタム設定でデスクトップ .Net アプリケーションを展開する方法

ただし、情報が見つからないアプリケーション設定を使用するという考えは理解しています。さまざまな顧客にアプリケーション設定を展開するにはどうすればよいですか?

正常に機能するカスタム設定システムがありますが、アプリを最初に実行するときに、会社名やアプリケーション サーバーなど、いくつかのことを知る必要があります。これらは明らかに顧客ごとに異なります。

ほとんどの場合、アプリはグループ ポリシーによって展開されるため、ユーザーが最初の実行時にこれらの設定を入力する必要はありません。

現在、私の考えでは、顧客ごとに別のビルドに何らかの設定ファイルを用意することです。これでいいのでしょうか、それとも、この「顧客プロファイル」の考え方に対するある種のネイティブ サポートを見逃したのでしょうか?

編集:

人々が私の質問を理解するのに役立つかもしれない詳細情報。

これは、中央データベースとアプリケーション サーバー、およびクライアント アプリケーションの 100 のインストールで構成されるエンタープライズ アプリケーションです。クライアント アプリケーションに、顧客ごとに明らかに異なるいくつかのアプリケーション設定を提供できるようにする必要があります。

4

3 に答える 3

0

エンタープライズ環境であることを考えると、ClickOnceの使用を検討しましたか?私たちは主にスタートアップの議論で成功を収めてきました。http://servername/OurApp.application?environment=uat

常にスケーリングするわけではありませんが、GET変数を使用して引数を渡し、HTTP経由で配信するときに結果のQueryStringを解析できます-http ://msdn.microsoft.com/en-us/library/ms172242.aspx

QueryStringで設定を渡すか、データベースで設定を作成し、(ハッシュ?)キーを生成して、その参照に固有のQueryStringを作成します(好奇心旺盛なユーザーがURIを操作できないという追加の利点があります)。と偽のパラメータのセット)。

于 2010-06-01T19:28:36.133 に答える
0

多くのアプリケーションでは、最初の起動時にいくつかの初期設定を求められます (Microsoft Office、Visual Studio など)。したがって、この動作はユーザーによく知られています。

おそらく問題は、これらの初期設定がアプリケーションの更新を復活させることです。これを実現するには、データをレジストリ内のバージョンに依存しないパスまたは %AppData% の下のどこかに保存します。

また、最初の起動時にこれらの情報をマシンのどこかから取得して、これらのダイアログを事前に入力しておくと便利です (たとえば、会社名はレジストリ [HKLM\Software\Microsoft\WindowsNT\CurrentVersion\RegisteredOrganization] から取得するか、アプリケーション サーバーが取得するように取得できます)。ゲートウェイ アドレス、AD サーバー、最も一般的に一致するもの)。

したがって、最良の場合、ユーザーには既に正しく入力されたフォームが表示され、Enter キーを押すか、必要な変更のみを行い、自分で完全なダイアログに入力する必要はありません。


アップデート:

そのため、ユーザーが Application Server のパスを知らない場合。誰がそれをしますか?この情報はどこにありますか? おそらく、この情報をすべて同じ方法で提供するように顧客に強制することができます. ログオン スクリプト内に何らかの環境変数を設定したり、必要な情報を含むファイルをグローバルにアクセス可能な場所 (たとえば、ログオン スクリプトが存在する場所) に置いたりする可能性があります。

于 2010-01-13T11:38:31.467 に答える
0

私の理解が正しければ、ユーザーごとに事前にカスタマイズされたソフトウェアを展開したいと考えています。WIX を使用して、顧客ごとに MSI パッケージを作成できます。顧客指向の msi で複数のユーザー設定を提供できます。顧客を保存するデータソースに基づいて、WIX-XML-Document を動的に生成できます。少し手間がかかりますが、後で多くの作業を節約できます。WIX による MSI の作成は、ビルド プロセスに簡単に統合できます。

于 2010-01-13T11:38:48.860 に答える