Пример #1
0
        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();
            }
        }