I’ve this simple C# program:
using Npgsql; public class App { public static void Main(string[] args) { const string CONNECTION_STRING = "Host=myserver;Username=mylogin;Password=mypass;Database=mydatabase"; using (var conn = new NpgsqlConnection(CONNECTION_STRING)) { conn.Open(); } } }
and I compile it with mono (mcs):
mcs -target:exe -lib:bin -r:System.Data.dll -r:Npgsql.dll -r:System.dll -r:Mono.Security.dll -out:bin/ssl.exe src/App.cs
when I execute, an error thrown:
Unhandled Exception: System.TypeLoadException: Could not load type 'System.Net.Security.SslStream' from assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. at Npgsql.NpgsqlConnector.Open () <0x4155f7f0 + 0x00115> in <filename unknown>:0 at Npgsql.NpgsqlConnectorPool.GetPooledConnector (Npgsql.NpgsqlConnection Connection) <0x4155c8d0 + 0x00a4f> in <filename unknown>:0 [ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not load type 'System.Net.Security.SslStream' from assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. at Npgsql.NpgsqlConnector.Open () <0x4155f7f0 + 0x00115> in <filename unknown>:0 at Npgsql.NpgsqlConnectorPool.GetPooledConnector (Npgsql.NpgsqlConnection Connection) <0x4155c8d0 + 0x00a4f> in <filename unknown>:0
My Npgsql.dll version
$ monop2 -r Npgsql.dll Assembly Information: Npgsql Version=2.2.0.0 Culture=neutral PublicKeyToken=5d8b90d52f46fda7
My compiler:
$ mcs --version Mono C# compiler version 4.4.0.0 $ mono --version Mono JIT compiler version 4.4.0 (Stable 4.4.0.40/f8474c4 Mon Mar 28 12:22:29 UTC 2016) Copyright (`u`C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com TLS: __thread SIGSEGV: altstack Notifications: epoll Architecture: amd64 Disabled: none Misc: softdebug LLVM: supported, not enabled. GC: sgen
Finally, my environment:
$ uname --all Linux abe 4.5.0-1-ARCH #1 SMP PREEMPT Tue Mar 15 09:41:03 CET 2016 x86_64 GNU/Linux
Thank you
Advertisement
Answer
I have one question – do you have library Mono.Security.dll inside bin folder? If so, please delete it and try again.