2

Visual Studio 2008を使用してVB.NETで記述されたプロジェクトがあり、17台のクライアントマシンにインストールされます。

私たちはプロジェクトを立ち上げる過程にあり、問題に遭遇しました。

Visual Studio内からインストーラーを作成し、クライアントマシンでsetup.exeを実行しました。すべて正常に動作しますが、その間に別の更新をリリースすると、起動時にユーザーはプロジェクトの新しいバージョンが利用可能であるという通知を受け取ります。

画像をアップロードするのに十分な評判がないため、画像へのリンクは次のとおりです。http: //postimage.org/image/7l7w6u841/

問題は、ポップアップするメッセージボックスに[OK]と[キャンセル]ボタンがあり、ユーザーが誤って[キャンセル]をクリックした場合、プログラムが更新されないため、問題が発生する可能性のある古いバージョンを実行することです。

私の質問は、「更新するか、ログインできない」タイプのもののように、起動時にユーザーにプロジェクトを更新するように強制する方法はありますか?

お時間をいただきありがとうございます。どんな助けでも大歓迎です。

フィル

4

2 に答える 2

4

ClickOnceを使用している場合、これは最低限必要なバージョンを指定することで実行できます

ユーザーにアプリケーションの更新バージョンの実行を要求したい場合があります。たとえば、Webサービスなどの外部リソースに変更を加えて、以前のバージョンのアプリケーションが正しく機能しなくなる可能性があります。この場合、更新を必要としてマークし、ユーザーが以前のバージョンを実行できないようにする必要があります。更新を必須としてマークするには、[アプリケーションの更新]ダイアログボックスで[このアプリケーションに最低限必要なバージョンを指定する]をクリックし、公開バージョン(メジャー、マイナー、ビルド、リビジョン)を指定します。これにより、可能なアプリケーションの最小バージョン番号が指定されます。インストールされます。詳細については、「アプリケーションの更新」ダイアログボックスを参照してください。

http://msdn.microsoft.com/en-us/library/s22azw1e (v=vs.100).aspx([更新が必要]まで下にスクロール)

于 2012-07-06T10:21:36.617 に答える
3

最も簡単な方法は次のとおりです。

  • 最新のバージョン番号であることに関する情報をサーバーで利用できるようにする
  • ログオン前にアプリケーションにこれをチェックさせる
  • 失敗したリクエストは、実行中のバージョンの番号を使用する必要があります
  • アプリケーションにこの値を実行中のバージョンと比較させ、それより大きい場合はログオンを許可しない

編集

最新のバージョン番号がhttp://somewhe.re/version.txtにあると仮定した疑似コードを次に示します。

//Application start

System.Reflection.AssemblyName an=new System.Reflection.AssemblyName(System.Reflection.Assembly.GetExecutingAssembly().FullName);
Version current_version=an.Version;

String httptext;
Version server_version=current_version;
try {
  httptext=//Result from http://somewhe.re/version.txt
  server_version=new Version(httptext);
} catch {}

if (server_version>current_version) {
  //You must update!
}
于 2012-07-05T08:56:05.990 に答える