Службы Windows C #, использующие несоответствие сборки WinSCP, поскольку ссылка на объект не установлена ​​на экземпляр объекта - PullRequest
0 голосов
/ 28 июня 2019

Я пишу код для загрузки файла на сервер sftp через WinSCP. Все остальное в моем коде работает, кроме случаев, когда я начал включать в код WinSCP. Не удается выполнить настройку сборки, так как она показывает ошибку, когда для ссылки на объект не задан экземпляр объекта.

Это выполняется в Windows Services с использованием VS 2010, включенного в ссылки WinSCP .net.

Ниже приведен код, который устанавливает сборку, я не могу использовать NuGet, так как для этого требуется более высокая версия Visual Studio.

Так что мне нужно создать эту сборку, которую я получил из самой WinSCP-сети, однако я не понимаю, чего мне здесь не хватает.

            try
            {
                Assembly executingAssembly = Assembly.GetExecutingAssembly();
                string resName = executingAssembly.GetName().Name + "." + "WinSCP.exe";
                using (Stream resource = Assembly.GetExecutingAssembly().GetManifestResourceStream(resName))
                using (Stream file = new FileStream(executablePath, FileMode.Create, FileAccess.Write))
                {
                    resource.CopyTo(file);
                }
            }
            catch (System.Exception ex)
            {
                WriteToFile("Cant setup assembly : " + ex.Message);

Результат должен состоять в том, что, когда сборка будет успешно создана, сеансы загрузки смогут проходить, поскольку в момент сеансов загрузки я получаю сообщение об ошибке "Версия C: \ Windows \ TEMP \ WinSCP.tmp311D. exe () не соответствует версии этой сборки somedir \ WinSCPnet.DLL (5.15.2.0). "

Небольшая помощь будет очень полезна.

...