Visual Studio 2022 の安定マイナーバージョン(LTSC対象)
2025年10月時点
| バージョン | チャネル | リリース日 | サポート終了日 | 備考 |
| 17.14 | Current(実質LTSC) | 2025年5月13日 | 2032年1月13日 | 2025年10月時点 |
| 17.12 | LTSC | 2024年11月12日 | 2026年7月14日 | 安定性重視のLTSC版 |
| 17.10 | LTSC | 2024年5月21日 | 2026年1月13日 | まだサポート中 |
VB2022初期設定
- COMの参照追加
ソリューションエクスプローラー内で、プロジェクトを右クリック⇒追加⇒COM参照
- exeファイルとDLLファイルをひとまとめにする方法
1.「プロジェクト」から「NuGet パッケージの管理」を開く 2.「参照」で、「Fody.Costura」を検索してインストール。「Fody」も一緒にインストールされる 3.VisualStudioを閉じる 4.vbprojファイルをメモ帳などで開く 5.<Reference Include="mscorlib" />を追記 <Reference Include="System" />の直前 6.メモ帳を保存して閉じる。 7.VisualStudioを開きデバッグする。 8.exeファイルの動きを確認する

- 実行時間がかかる場合に例外処理から外す
.NET アプリケーションをデバッグ実行中に時間がかかる処理があり、以下のエラーが発生しました。 =============================================================== ContextSwitchDeadlock が検出されました。 Message: CLR は、COM コンテキスト 0x1af66748 から COM コンテキスト 0x1af66870 へ 60 秒で移行できませんでした。ターゲット コンテキストおよびアパートメントを所有するスレッドが、ポンプしない待機を行っているか、Windows のメッセージを表示しないで非常に長い実行操作を処理しているかのどちらかです。この状態は通常、パフォーマンスを低下させたり、アプリケーションが応答していない状態および増え続けるメモリ使用を導く可能性があります。この問題を回避するには、すべての Single Thread Apartment (STA) のスレッドが、CoWaitForMultipleHandles のようなポンプする待機プリミティブを使用するか、長い実行操作中に定期的にメッセージをポンプしなければなりません。 ===============================================================
デバック⇒ウィンドウ⇒例外設定⇒「Managed Debugging Assistants」を展開し、「ContextSwitchDeadlock」の項目のチェックを外す。
フォルダ設定
- フォルダ作成すると読み取り専用になる(Win10以降、顕著に発生する現象)参考
'フォルダーが読み取り専用になるとファイルの属性も読み取りになることもあるため
'下記のコードを追加する。
Dim nowatrbt As FileAttribute '現在の属性
Dim nwattrbts As FileAttribute '新しい属性
nowatrbt = IO.File.GetAttributes("C:\test\testfile.txt") '現在の属性を取得
nwattrbts = nowatrbt And (Not FileAttribute.ReadOnly) '読み取り専用属性の解除
IO.File.SetAttributes("C:\test\testfile.txt", nwattrbts) '新しい属性をセット
DataGridView
- CSVファイルをDataGrdiViewに取り込む
CSV→DataTable→DataGridView参考
Private Sub ConvertCsvToDatatable_01(Fn As String)
If IO.File.Exists(Fn) = False Then
MessageBox.Show("存在しません!")
Exit Sub
End If
'テーブルの列を定義
Dim columns As DataColumn() = {
New DataColumn("検索文字", System.Type.GetType("System.String")),
New DataColumn("ファイル名", System.Type.GetType("System.String")),
New DataColumn("検索日時1", System.Type.GetType("System.String")),
New DataColumn("検索日時2", System.Type.GetType("System.String"))
}
'テーブルに列を追加
Dim Dt1 As DataTable = New DataTable
Dt1.Columns.AddRange(columns)
Dim Rx As String
Dim Sr As New IO.StreamReader(Fn, System.Text.Encoding.Default)
Rx = Sr.ReadLine
Do While Not Rx Is Nothing
Dim Ar1 As String() = Rx.Split(",")
If Ar1.Length >= 3 Then
Dim Row1 As DataRow = Dt1.NewRow
Row1("検索文字") = Ar1(0)
Row1("ファイル名") = Ar1(1)
Row1("検索日時1") = Ar1(2)
Row1("検索日時2") = Ar1(3)
Dt1.Rows.Add(Row1)
End If
Rx = Sr.ReadLine
Loop
Me.DataGridView1.DataSource = Dt1
'ヘッダーとすべてのセルの内容に合わせて、列の幅を自動調整する
DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
End Sub
VB2022アドイン設定
- OracleクライアントをインストールしないでOralceに接続する方法
Oracle2022
VB2022の、Oracle.ManagedDataAccess設定
Oracle Data Provider for .NET(ODP.NET)をインストール
Visual Studio のメニューから
[ツール] → [NuGet パッケージ マネージャー] → [ソリューションの NuGet パッケージの管理] を開きます。 「参照」タブで以下のパッケージを検索してインストールします:
検索ワード:Oracle.ManagedDataAccess
推奨バージョン:Oracle.ManagedDataAccess 19.10 または 19.11
対応フレームワーク: .NET Framework 4.0 ~ 4.7.1 に対応
Oracle 19c に正式対応
安定性が高く、Visual Studio 2022 でも利用可能
エラー対応
- 「オブジェクト参照が必要です」エラーが出たときは?
対策例
'Dim result2 = OriginalClass.Add(1, 2) ' ←この行はコンパイルエラー ' BC30469 非共有メンバーを参照するには、オブジェクト参照が必要です。 ' ↓オブジェクトを作り、そのオブジェクトに対して呼び出せばよい Dim objectOfOriginalClass = New OriginalClass() Dim result2a = objectOfOriginalClass.Add(1, 2)
サイト内リンク
Office系
DB系
開発
OS系