public static void Open(bool DebugFlag) { string thisAssemblyPath = new Uri(typeof(SSH2Library).Assembly.CodeBase).LocalPath; string thisAssemblyFolder = Path.GetDirectoryName(thisAssemblyPath); List <string> libPaths = new List <string>(); ArrayList libArray = new ArrayList(); string dllDirectoryPath = Path.Combine(thisAssemblyFolder, "libssh2"); string vcruntimePath = Path.Combine(dllDirectoryPath, "vcruntime140"); string libssh2Path = Path.Combine(dllDirectoryPath, "libssh2"); string zlib1Path = Path.Combine(dllDirectoryPath, "zlib1"); if (_libSSH2 != null) { return; } try { libPaths.Add(Path.Combine(thisAssemblyFolder, "libssh2")); libPaths.Add(libssh2Path); libPaths.Add("libssh2"); libSSH2Name = UnmanagedLibrary.FirstValidLibraryPath(libPaths.ToArray()); _libSSH2 = new UnmanagedLibrary(libPaths.ToArray(), DebugFlag); libPaths.Clear(); } catch (Exception ex) { Console.WriteLine("Error: Loading library libssh2 !\n" + ex.Message); libPaths.Clear(); } }