|
分類:[C#]
VS2022 C#
.NET Framework 4.8
Windowsフォーム
PostgreSQLアクセス用のクラスライブラリを作成しています。
NpsqlをNuGetでインストールしました。
このクラスライブラリを参照設定して
PostgreSQLへのコネクションを接続した際
エラーになりました。
System.IO.FileNotFoundException: 'ファイルまたはアセンブリ 'System.Buffers, Version=4.0.2.0,
Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'、またはその依存関係の 1 つが読み込めませんでした。
指定されたファイルが見つかりません。'
やったこと
★クラスライブラリ作成
namespace ClassLibrary1
public class Class1
NuGetでNpgsql.5.0.14をインストール
ClassLibrary1
インストール中:
System.Buffers.4.5.0
System.Numerics.Vectors.4.5.0
System.Runtime.CompilerServices.Unsafe.4.6.0
System.Memory.4.5.3
System.Text.Encodings.Web.4.6.0
System.Threading.Tasks.Extensions.4.5.3
Microsoft.Bcl.AsyncInterfaces.1.1.0
System.Threading.Channels.4.7.0
System.ValueTuple.4.5.0
System.Text.Json.4.6.0
Npgsql.5.0.14
Class1にOpenメソッド作成
public void Open()
{
using (var conn = new NpgsqlConnection())
{
conn.ConnectionString = "xxx";
conn.Open();
}
}
ClassLibrary1をビルド
★Windowsフォームアプリケーション作成
namespace WindowsFormsApp1
public partial class Form1 : Form
ClassLibrary1.dllを参照設定
PostgreSQLに接続
private void Form1_Load(object sender, EventArgs e)
{
new ClassLibrary1.Class1().Open();
}
Open()でエラーになります。
すんなりと実行までいったのですが
どこに問題あるのでしょうか?
ClassLibrary1.dllと同じフォルダにある全DLL(System.Buffers.dllなど)を参照設定すると
エラーになりませんでした。
全DLLを参照設定するのが通常のやりかたでしょうか?
このエラーは実行する(そこを通る)までわからないのですか?
よろしくお願い申し上げます。
|