Я попытался обновить WinSCP до последней версии.
У нас есть .exe в нашем проекте. Я убедился, что это правильная версия, и у нее есть «Копировать».
Получение ошибки:
Exception thrown: 'WinSCP.SessionLocalException' in WinSCPnet.dll The version of \corp\someShareDrive\Utils\WinSCPWrapper\WinSCPWrapperGet_v0100\WinSCP.exe (5.9.6.0) does not match version of this assembly D:\Source\Neal\Git\WinAppWinSCP\WinSCPWrapperGet\bin\Debug\WinSCPnet.DLL (5.19.6.0).
Указанный выше каталог на нашем общем сетевом диске существует, но я не могу понять, почему на него ссылаются, когда я запускаю программу в Visual Studio (2015 г., так как нам необходимо поддерживать совместимость с более старой версией BizTalk). Как ошибка может быть связана с этим нечетным каталогом, особенно если в моем проекте есть WinSCP.exe (и это также правильная версия в моем каталоге /debug после выполнения сборки)?
Мой .csproj имеет следующее, и я знаю, что 5.19.6 — правильная новая версия.
<Reference Include = "WinSCPnet, Version=1.8.3.12002, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf, processorArchitecture=MSIL">
<HintPath>..\packages\WinSCP.5.19.6\lib\net40\WinSCPnet.dll</HintPath>
<Private>True</Private>
</Reference>
Я не могу найти ссылку на сетевой ресурс в файле .csproj. Я установил или обновил Nuget.
Я видел эти связанные вопросы: Версия ...\WinSCP.exe не соответствует версии этой сборки при использовании сборки WinSCP .NET и DLL ищет неправильную версию но я думаю, что мой вопрос в другом - я пытаюсь понять, почему он использует .exe на ShareDrive.
После публикации вышеизложенного я удалил Nuget, установил ту же проблему.





Я просканировал весь каталог исходного кода в поисках имени общего диска и нашел его в файле app.config.
Программа установила «ExecutablePath», используя переменную из файла app.config:
if (!String.IsNullOrWhiteSpace(WinSCPExePath)) session.ExecutablePath = WinSCPExePath;
Поэтому мне просто нужно было изменить файл конфигурации.