2009-05-25 7 views
3

私は自己更新アプリケーションの作成に取り組んでいます。私はVistaとWindows 7で実行している1つの問題は、クライアントを更新するために管理者権限を必要としています。制限付きの権限でユーザーを実行しているクライアントで問題が発生し、ユーザーができなかったためにクライアントを更新する必要があるすべてのマシンにITログを記録する必要がありました。プログラムファイルの代わりにドキュメントからアプリケーションを実行

私は考えている可能性のある回避策は、ランチャーアプリケーションを通常どおりProgram Filesにインストールし、実際のアプリケーションをどこかのユーザードキュメントにインストールして更新して、 ITが関与するようになる。

私はここで欠落している可能性があるか、このパスの先に進む前に知っておくべきことがあるのだろうかと思います。私はclick-onceが非常に似たようなことをしていることを知っています。私はそれを使用しています。

答えて

1

これは、これが想定される方法です。ほとんどのIT部門が望む最後のものは、ユーザーがソフトウェアをランダムに更新することです。これにより、古いバージョンのファイルとの非互換性、新しい機能、おそらく安全性の低い機能など、さまざまな意図しない副作用が生じる可能性があります。これは、IT部門がWindows Updateを無効にし、

ソフトウェアの更新版が必要な場合は、IT部門にソフトウェアを要求する必要があります。それらのコンピュータやインフラストラクチャはそれらに属しません。彼らは仕事をすることができるように、働いている会社から時間を借りています。

+0

私は理論的にあなたに同意します。問題の一部は、早期にリリースされ、頻繁にリリースされる開発プロセスです。アップデートを検出し、インストーラのダウンロードと起動を促してアップデートするプロセスが既にあります。このため、特に1台のクライアントに問題が発生し、コンピュータをロックダウンしてIT担当者が更新を行う必要があります。 週にほぼ更新されているので、これはIT部門にとって非常に迷惑です。彼らのIT部門の苦情は、この道を下る理由でした。 –

+0

できるだけ痛みを伴わずにネットワークを介して展開を行うためにそれらと協力することをお勧めします。彼らが手ですべてを更新している場合、彼らはそれを難し​​い方法でやっています。 – Soviut

0

ローダースタブは良い方法です。唯一の問題は、ローダーを更新する必要がある場合です。同じ初期問題が適用されます(それはかなりまれであるはずです)。

私が頭の上から考えることができる1つの問題は、物事をより安全に保つという全体の考え方を踏み出していることです。あなたの実行可能ファイルは、管理者以外の人が完全にアクセス可能な場所に存在するため、他の何かがあなたのexeを壊してセキュリティを害する可能性があります。

1

プログラムを1回だけインストールすることに問題はありますか?それは特に大きいですか?

プログラムを実行するには管理者特権が必要ですか?

もしそうでなければ、Program Filesフォルダは必要ありません。

私はProgram Filesへのインストールを完全に避け、ユーザのフォルダシステムにプログラムをインストールすることをお勧めします。<userfolder>\AppData\ProgramName

.NETを使用している場合は、ClickOnce deployment mechanismを参照してください。おそらくあなたの人生を楽にしてくれる素晴らしい自己更新機能があります。

編集:あなたの最後の文章を見ました。 ClickOnceはユーザーに強制的に更新させることができます。

+0

実際には私が取り組んでいる2つの別々のアプリケーションがあります。 1つは、ユーザインタラクションなしで更新できる必要があるキオスクです。 Clickonceでは、アップデートをインストールするためにユーザーが数回クリックする必要があるため、そのアプリケーションの要件に合わないため、両方のアプリケーションで同じアップデート方法を使用したいと考えていました。 –

+0

さて、私はまだClickOnceが最善の解決策だと思う。完全にサイレントなアップデートはまさに最高のUI、IMOではないが、Program Filesフォルダではなくユーザのフォルダシステムにインストールすることで問題を解決できる。プログラムはユーザーの権限で実行され、ユーザーは問題なくAppDataを読み書きできます。 Badabing、badaboom、昇格する必要はありません。 – Randolpho

1

物事のカップル:

、あなたのアプリケーションは、あなたのプログラムがインストールされている場所に透過的にデータの書き込みを行うことを確認して、文書内のいくつかの場所にアプリを移動することを決定した場合、例えば悪い場所を指しているコードのどこにでもハードコーディングされたパスがある場合。おそらくこれはあなたにとって問題ではありませんが、心に留めておくべきことかもしれません。

「ライブアップデート」機能を実装することとほぼ同じ方法でこれを解決しました。しかし代わりに、管理者権限で実行されているサービスをインストールしました。このサービスは、プログラムを更新する必要があると、インストーラを実行できます。このタイプのソリューションでは、アプリケーションファイルをプログラムファイルから移動する必要はありません。

乾杯!

編集:

サービスが管理者として実行されているという別のすばらしいことです。通常のユーザーとしては行えないように、名前付きパイプ通信を作成して、それをあなたのために行うことができますか?

0

おそらくAppLockerを利用できます。私はVistaをもう実行していないが、それはWin7のためだけかもしれない。 ;)

関連する問題