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

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

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

VS2017をVS2022に更新時に出るエラーの処理方法

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■103731 / inTopicNo.1)  VS2017をVS2022に更新時に出るエラーの処理方法
  
□投稿者/ 独学中級者 (4回)-(2025/06/11(Wed) 02:30:47)

分類:[.NET 全般] 

2025/06/11(Wed) 02:38:14 編集(投稿者)
2025/06/11(Wed) 02:38:12 編集(投稿者)

VB.NETで動くデスクトップアプリを VS2017で作成していましたが

新しいパソコンでVS2017communityがインストールできないのでVS2022に更新したところ
これまで2017で作っていたアプリを開くとエラーが出たので教えていただきたいです。


下記A のように「自作クラス」を「My.Settings」と同じ操作で設定保存読込していました
下記B の定義です
下記C のエラーが出るようになりました

解決方法を教えていただけませんでしょうか


ーーーーーーーーーーーーーーーーーーーーーーーーーー
A サンプルコード
ーーーーーーーーーーーーーーーーーーーーーーーーーー

My.Settings.Save()

オリジナル.Default.Save()

   Dim 仮 As List(Of 自作クラス) = オリジナル.Default.自作リスト
 
ーーーーーーーーーーーーーーーーーーーーーーーーーー
B 定義
ーーーーーーーーーーーーーーーーーーーーーーーーーー

Partial Friend NotInheritable Class オリジナル
<Global.System.Configuration.UserScopedSettingAttribute(),
Global.System.Configuration.DefaultSettingValueAttribute(Nothing)>
Public Property 自作リスト() As List(Of 自作クラス)
Get
Return CType(Me("自作リスト"), List(Of 自作クラス))
End Get
Set(ByVal value As List(Of 自作クラス))
Me("自作リスト") = value
End Set
End Property
End Class


<Serializable()>
Public Class 自作クラス
Public 設定1 As String
End Class


ーーーーーーーーーーーーーーーーーーーーーーーーーー
C エラー表示
ーーーーーーーーーーーーーーーーーーーーーーーーーー
エラー1  クラス 'オリジナル' には既定のプロパティがないため、インデックス処理を実行できません。
エラー2  'Default' は 'オリジナル' のメンバーではありません。

ーーーーーーーーーーーーーーーーーーーーーーーーーー
D 開発環境
ーーーーーーーーーーーーーーーーーーーーーーーーーー
もとの開発環境(エラー出ない)
WIN11 VS2017コミュニティ ←正常動作、2〜3年前頃に買ったパソコン レノボ

新しい開発環境(エラー出る)
WIN11 VS2022コミュニティ ←最近買ったパソコンです HP



引用返信 編集キー/
■103732 / inTopicNo.2)  Re[1]: VS2017をVS2022に更新時に出るエラーの処理方法
□投稿者/ WebSurfer (2956回)-(2025/06/11(Wed) 07:17:20)
No103731 (独学中級者 さん) に返信

> C エラー表示
> ーーーーーーーーーーーーーーーーーーーーーーーーーー
> エラー1  クラス 'オリジナル' には既定のプロパティがないため、インデックス処理を実行できません。
> エラー2  'Default' は 'オリジナル' のメンバーではありません。
>
> ーーーーーーーーーーーーーーーーーーーーーーーーーー

Partial Friend NotInheritable Class オリジナル・・・と Partial になっているということは、
別の場所で定義されているが、コピーし忘れとかでVS2022 にはそれがないということでは?
引用返信 編集キー/
■103733 / inTopicNo.3)  Re[1]: VS2017をVS2022に更新時に出るエラーの処理方法
□投稿者/ 魔界の仮面弁士 (3854回)-(2025/06/11(Wed) 10:27:20)
No103731 (独学中級者 さん) に返信
> VB.NETで動くデスクトップアプリを VS2017で作成していましたが
> 新しいパソコンでVS2017communityがインストールできないのでVS2022に更新したところ
> これまで2017で作っていたアプリを開くとエラーが出たので教えていただきたいです。

VS2017 と VS2022 は共存インストールが可能です。
また、Community と Enterprise のように複数のエディションの共存も可能です。

VS2017 Community は既に古い製品のため、現在の入手経路は Visual Studio Subscriptions からのみとなっています。
現行のインストーラーファイル名は mu_visual_studio_community_2017_version_15.3_x86_x64_11100062.exe です。
https://visualstudio.microsoft.com/ja/vs/older-downloads/

上記からの入手には有効な Visual Studio Subscription が必要です。Free ライセンスだと VS2017 Community はダウンロードできません。(VS2022 Community は OK)

あるいは、以前に入手済みのインストーラー(vs_setup.exe や vs_community__1823633994.1491486398.exe など)があれば
そこから VS2017 Community をインストールすることができます。インストールにはインターネット接続が必要です。
https://www.reddit.com/r/VisualStudio/comments/1all0d4/is_visual_studio_2017_community_version_still/

ネットワーク接続できない環境でインストールする場合は、他のPCにて管理者コマンドプロンプトで
「vs_setup.exe --layout C:\VS2017CommunityInst\」
と実行することで、オフラインインストーラー一式を入手できます。


> 下記A のように「自作クラス」を「My.Settings」と同じ操作で設定保存読込していました
> 下記B の定義です
> 下記C のエラーが出るようになりました
ファイルは不足していませんか?
「.sln ファイルのあるフォルダー」を一式丸ごとコピーし、NuGet が必要なものは再取得してください。

また、移植にあたって、フォルダー名やプロジェクト名を変更していないでしょうか。
それぞれの環境で、名前空間に差異が無いかを確認してください。
たとえば、コンパイルをまだ通していない状態でプロジェクトのプロパティの「ルート名前空間」を変化させた場合、
自動生成コードが依存ファイルを見つけられなくなってしまうことがあります。
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ