ClickOnce でデプロイされたアプリケーションの 1 つで、この奇妙な問題が発生しています。
一部のクライアント マシンでは、アプリケーションの更新時に ClickOnce を実行しても、古いデータベースが .pre フォルダーにコピーされません。
ClickOnce はアプリケーションを更新しますが、新規インストールのように動作します。
もう 1 つの奇妙な点は、クライアントがこの問題を抱えているクライアント PC を強制的に更新するために最低限必要なバージョンが指定されているにもかかわらず、ClickOnce アップグレード プロンプトが表示されることです (コントロール パネルに "アプリケーションを以前の状態に復元する" というメッセージも表示されます)。プログラムと機能」項目)。
実際、他のクライアント PC はプロンプトを表示せずに自動的にアップグレードされ、ClickOnce 更新は本来の動作をします。
これは成熟したアプリケーションであり、これは 30 番目の出版物です。
もう 1 つの要素は次のとおりです。通常、このアプリケーションを 2 台の PC で交互に発行しましたが、Visual Studio 2012 をインストールした後、それらを使用して ClickOnce を発行することはできず、このアプリケーションを発行するためだけに仮想マシンを作成しました。
- - - - - - - アップデート - - - - - - - -
私はRobinDotNetのソリューションを受け入れました。データを確実に移動する ClickOnce に依存しないのは当然のことだからです。
また、 ApplicationDeployment.IsFirstRunに依存できないこともわかりました。
IsFirstRun の内部チェックを使用するようにコードを変更したところ、すべての更新がスムーズに実行されるようになりました。