web-dev-qa-db-ja.com

アプリケーションを更新できるように、ネットワーク共有からアプリケーションをどのように実行しますか?

ネットワーク共有に展開した内部デスクトップアプリケーションがあります。そのディレクトリには、各バージョンのサブディレクトリがあります。つまり、z:\ Apps\ApplicationX\1.0 z:\ Apps\ApplicationX\2.0 z:\ Apps\ApplicationX\2.1

アプリケーションの最新バージョンを指すショートカットをユーザーのデスクトップに配置したいと思います。私の現在の解決策は、現在のバージョンを「z:\ Apps\ApplicationX\Current」というディレクトリに配置し、デスクトップ上のexeへのショートカットを配置することです。

問題は、彼らがアプリケーションを実行しているときに、ファイルがロックされているためにアプリケーションを更新できないことです。

ファイルをローカルにコピーしてそこから実行するバッチファイルを指すようにショートカットを変更しようとしましたが、すべてWindows 7を使用しているため、UACにより、ファイルをC:ドライブにコピーするときに問題が発生します。インストールする。

実行可能ファイルをユーザーのホームドライブにコピーしてそこから実行できると思いますが、ユーザーのホームドライブに実行可能ファイルを含めるというアイデアは好きではありません。また、ネットワーク上にアプリケーションのコピーが複数あることも意味しますが、私は好きではありません。

また、ショートカットへのショートカットができるかもしれないと思って、ショートカットを更新するだけですが、それもうまくいきません。

私の現在の解決策は、現在のバージョンを指す開始コマンドとそのバッチファイルへのショートカットを含むバッチファイルを用意することです。

他の誰かが可能な解決策を持っていますか?

3
Benjamin Peikes

私の好みの方法、2つのアプリケーション。あなたがすでに持っているメインアプリ。 2番目はランチャー/アップデーターです。ランチャーへのショートカットを作成し、起動する実行可能ファイルのパスの構成設定(暗号化された意味不明、xml、プレーンテキスト、ランチャーに直接ハードコードされているものなど)をチェックして起動します。メインアプリが起動すると、ローダーは終了します。

新しいバージョンを入手するたびに、ランチャーの構成ファイルを更新すると、今後のプログラムの起動で新しいバージョンが開きます。

これは「ブートローダー」スタイルのプロセスです。フルサイズのアプリを指す小さな支援アプリを用意します。クライアントは小さなアプリを起動し、適切な完全なアプリに誘導します。

ランチャーにフルサイズのアプリのハッシュフィンガープリントまたは署名をチェックさせて、誰も創造性を発揮せず、ランチャーから別のアプリにリンクしようとしない場合のボーナスポイント。

2
Ruscal

レガシーアプリケーションのように聞こえます。あなたの最善の策は、それを過度に複雑にせず、更新のためにダウンタイムをスケジュールすることです。

2
DanBig

私はDanBigに同意します。単純な状況では、大幅に改良したくない場合(Ruscalが提案するように、これは良い考えです)、ファイルロックを解除して.exeファイルを置き換える「停止」をスケジュールするだけです(多分一晩または週末に)。

「アプリケーションの最新バージョンを指すショートカットをユーザーのデスクトップに配置したい」-OP

それらをデスクトップに表示する限り、ショートカットポイントをz:\ Apps\ApplicationX \にして、現在のEXEをそこに配置してみませんか。次に、必要に応じて、z:\ Apps\ApplicationX\revisionsのように過去のリビジョン/バージョンのサブフォルダーを作成します。このように、クライアントショートカットは変更されません。更新中に、既存のexeをrev#フォルダーに移動し、新しい/更新された.exeをz:\ Apps\ApplicationX \フォルダーに配置するだけです。

1
TheCleaner

DanBigとTheCleanerに同意します。そのような内部アプリがあります。ショートカットは\\server\share\application\application.exeに移動し、更新が必要な場合は、ユーザーがその日帰宅するまで待ち、サーバーマネージャーまたはコンピューターマネージャーを使用して開いているファイルを閉じ、新しいファイルをコピーできるようにします。

かわいくないですが、他のものはもっと醜いです、私見。

1

Linux上で実行されているSambaサーバーを使用できます。アプリケーションを更新する必要がある場合は、「current」フォルダーの名前を変更し、「current」という名前で新しいフォルダーを作成します。共有は読み取り専用である必要があります。

Linux(Unix)では、ファイルの名前変更または削除が許可されており、ファイルが開かれているプロセスは、ファイル記述子が閉じられるまで古いバージョンを使用できます。

0