VB2022

Last-modified: 2025-11-06 (木) 14:51:19
amazon.gif

 Visual Studio 2022 の安定マイナーバージョン(LTSC対象)

2025年10月時点

バージョンチャネルリリース日サポート終了日備考
17.14Current(実質LTSC)2025年5月13日2032年1月13日2025年10月時点
17.12LTSC2024年11月12日2026年7月14日安定性重視のLTSC版
17.10LTSC2024年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ファイルの動きを確認する
    62_6.png

参考

  • 実行時間がかかる場合に例外処理から外す
.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系