WinSCP.exe 与该程序集的版本不匹配

WinSCP.exe does not match version of this assembly

我尝试更新到最新版本的 WinSCP。

我们的项目中确实有.exe。我确定它是正确的版本,并且它有“Copy”

获取错误:

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。

我看过这些相关的问题: DLL looking for wrong version 但我认为我的问题有所不同 - 我试图弄清楚为什么它在 ShareDrive 上使用 .exe。

发布以上内容后,我卸载了 Nuget,然后安装,同样的问题。

我扫描了整个源代码目录以查找共享驱动器名称,并在 app.config 文件中找到了它。

程序使用 app.config 文件中的变量设置“ExecutablePath”:

if (!String.IsNullOrWhiteSpace(WinSCPExePath)) session.ExecutablePath = WinSCPExePath;

所以我只需要更改配置文件。