質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

解決済

System.TypeLoadExceptionが起きて止まる

kmsnmrn
kmsnmrn

総合スコア1

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

1回答

-4評価

0クリップ

591閲覧

投稿2022/06/15 02:47

編集2022/06/17 22:50

下記の環境でC#Windows フォームアプリを作っています。

Visual Studio Professional 2022(64ビット) Version 17.2.4
Microsoft .NET Framework Version 4.8.04084
C#ツール 4.2.0-4.22281.5

次のコードをDebugで実行している際、System.TypeLoadExceptionが発生し
実行途中で終了しました。


using System;
using System.Data;
using Oracle.ManagedDataAccess.Client;

public partial class BItoolUserList : Form
{
public BItoolUserList()
{
InitializeComponent();
}

private void searchBtn_Click(object sender, EventArgs e) { string sql = "SELECT account, password, name, yuko_kubun_code FROM R_ACCOUNT WHERE ROWNUM <= 5"; try { using (OracleConnection conn = new OracleConnection()) { conn.ConnectionString = "User Id=xxxxx; Password=rrrrrr; Data Source=OORRAACCLLEE"; conn.Open(); Console.WriteLine("DB接続開始"); using (OracleCommand cmd = new OracleCommand(sql)) { cmd.Connection = conn; cmd.CommandType = CommandType.Text; using (OracleDataReader reader = cmd.ExecuteReader()) { while(reader.Read()) { Console.WriteLine(reader["account"]); Console.WriteLine(reader["password"]); Console.WriteLine(reader["name"]); Console.WriteLine(reader["yuko_kubun_code"]); } } } } } catch(Exception ex) { Console.WriteLine(ex.Message.ToString()); } }

}


エラーメッセージは次の通りです。
例外がスローされました: 'System.TypeLoadException' (System.Private.CoreLib.dll の中)
型 'System.TypeLoadException' のハンドルされていない例外が System.Private.CoreLib.dll で発生しました
Could not load type 'System.Security.Principal.WindowsImpersonationContext' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
System.TypeLoadException
HResult=0x80131522
Message=Could not load type 'System.Security.Principal.WindowsImpersonationContext' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
Source=Oracle.ManagedDataAccess

エラーの詳細を確認すると次の通りになっています。
スタック トレース:
場所 OracleInternal.ConnectionPool.PoolManager`3.CreateNewPRThreadFunc(Object state)
場所 System.Threading.QueueUserWorkItemCallbackDefaultContext.Execute() (//src/libraries/System.Private.CoreLib/src/System/Threading/ThreadPoolWorkQueue.cs):行 979
場所 System.Threading.ThreadPoolWorkQueue.Dispatch() (/
/src/libraries/System.Private.CoreLib/src/System/Threading/ThreadPoolWorkQueue.cs):行 790
場所 System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart() (//src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.WorkerThread.cs):行 63
場所 System.Threading.Thread.StartCallback() (/
/src/coreclr/System.Private.CoreLib/src/System/Threading/Thread.CoreCLR.cs):行 106

ODP.NETを入れたときの手順について
(VSの)ツール->NuGetパッケージマネージャー->ソリューションのNuGetパッケージの管理
[参照]タブでOracle.ManagedDataAccess.Coreをインストール

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

ozwk

2022/06/15 02:54

teratailの不具合かなにかで多重投稿になっているので1つだけ残して他は削除依頼を出してください
KOZ6.0

2022/06/15 07:54

Microsoft .NET Framework Version 4.8.04084 これは正しいですか?
kmsnmrn

2022/06/15 07:59

正しい情報です。
KOZ6.0

2022/06/15 08:07

ということは、ODP.NET Core を使ってないですか? .NET Framework なら ODP.NET を使ってください。
KOZ6.0

2022/06/16 06:49

解決したなら、その旨を自己回答し、クローズしてください。 そうでない場合は、質問を編集し、追加の質問を書き込んでください。
kmsnmrn

2022/06/16 06:57

まだ解決しておりません。 ODP.NETで調べてみて、入れられたと思いますがExceptionが起きてしまってます。 --- 例外がスローされました: 'System.TypeLoadException' (System.Private.CoreLib.dll の中) Could not load type 'System.Security.Principal.WindowsImpersonationContext' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
KOZ6.0

2022/06/16 07:42

System.Private.CoreLib.dll は NET Core 系のライブラリだったかと思います。 正しいアセンブリを参照できていない気がします。 ODP.NET を入れたときの手順を質問を編集し、追記してください。
kmsnmrn

2022/06/16 08:02

コメントありがとうございます。 まとめてから追記します。
KOZ6.0

2022/06/16 09:27

エラーメッセージを見る限りでは、NET6 から ODP.NET を使おうとしているように見えるんですけどねー
kmsnmrn

2022/06/16 23:22

ODP.NETを入れたときの手順について (VSの)ツール->NuGetパッケージマネージャー->ソリューションのNuGetパッケージの管理 [参照]タブでOracle.ManagedDataAccess.Coreをインストール 以上となります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。