C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

vb.net バージョンアップで前設定を更新したい /エイコウ (23/11/19(Sun) 11:08) #102575
Re[1]: vb.net バージョンアップで前設定を更新したい /魔界の仮面弁士 (23/11/19(Sun) 11:41) #102576
  └ Re[2]: vb.net バージョンアップで前設定を更新したい /エイコウ (23/11/19(Sun) 15:37) #102577 解決済み


親記事 / ▼[ 102576 ]
■102575 / 親階層)  vb.net バージョンアップで前設定を更新したい
□投稿者/ エイコウ (1回)-(2023/11/19(Sun) 11:08:45)

分類:[.NET 全般] 

2023/11/19(Sun) 11:09:57 編集(投稿者)
2023/11/19(Sun) 11:09:51 編集(投稿者)

お世話になります

VB.NET VS2017 でデスクトップアプリを作っています

マイナーバージョンアップで上書きインストールしたときに
ユーザースコープの設定が初期化されてしまいます
なので前バージョンの設定を引き継ぎたいと考えています

古いバージョンのユーザースコープを読む方法を教えてください


設定を読み込みたいのは
下記HPの『スコープと保存場所』に記載されているものと考えています

Visual Studioでアプリケーションの設定を保存する
https://dobon.net/vb/dotnet/programing/mysettings.html#scope



[ □ Tree ] 返信 編集キー/

▲[ 102575 ] / ▼[ 102577 ]
■102576 / 1階層)  Re[1]: vb.net バージョンアップで前設定を更新したい
□投稿者/ 魔界の仮面弁士 (3715回)-(2023/11/19(Sun) 11:41:57)
No102575 (エイコウ さん) に返信
> マイナーバージョンアップで上書きインストールしたときに
> ユーザースコープの設定が初期化されてしまいます
> なので前バージョンの設定を引き継ぎたいと考えています

ClickOnceアプリですね。

既にご自身でお読みになっているサイトの「前バージョンの設定を取得する」の項に記載されていますように、
My.Settings.Upgrade() を呼び出すと、直前のバージョンの設定を引き継ぐことができます。
既に設定済みで呼び出すと上書きされてしまうので、バージョンアップ直後に一回だけ呼び出すようにしましょう。


よくある常套手段として…ユーザースコープに Boolean 型の項目、
たとえば「IsUpgraded」といったメンバーを用意しておき、
その初期値を False にしておきます。そのうえで
 If Not My.Settings.IsUpgraded Then
  My.Settings.Upgrade()
  My.Settings.IsUpgraded = True
  My.Settings.Save()
 End If
のようにするという方法が知られています。

ちなみに C# の場合もほぼ同様です。
https://qiita.com/minoru-nagasawa/items/946831c9c0c3513dae12
[ 親 102575 / □ Tree ] 返信 編集キー/

▲[ 102576 ] / 返信無し
■102577 / 2階層)  Re[2]: vb.net バージョンアップで前設定を更新したい
□投稿者/ エイコウ (2回)-(2023/11/19(Sun) 15:37:41)
No102576 (魔界の仮面弁士 さん) に返信


 My.Settings.Upgrade()

を一度試してうまくいかなかったので、根本的に違うのかと思いましたが
不具合の原因がわかり無事に更新できました

ありがとうございました



解決済み
[ 親 102575 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -