每当我 运行 我的 Visual Studio 项目时,可执行文件 (WinSCP.exe) 从 bin 目录中删除

Executable file (WinSCP.exe) is deleted from bin directory whenever I run my Visual Studio project

我想将 WinSCP .NET 程序集集成到我的 Visual Studio 2015 可执行项目中以进行 SFTP 操作。我已经使用相关的 NuGet 包安装了程序集,其中包括 WinSCPnet.dll 和 WinSCP.exe.

当我在发布或调试配置中构建我的解决方案时,这些文件会按预期复制到项目 bin 文件夹中的相应目录。但是 一旦我点击 Start 到 运行 启动项目,WinSCP.exe 就会消失 ,并且最终会抛出一个异常,确认 WinSCP.exe 不会存在于预期目录中。

我在网上发现的一些潜在解决方案表明,过分热心的反病毒程序可能会导致文件被删除,但尽管我在我的 AV 中设置了异常,但问题仍然存在,并使用 procmon 进行了一些调查,我确认msbuild.exe是删除WinSCP.exe的罪魁祸首,我也不知道为什么。

如果我 运行 我的解决方案是独立的,这个问题就不会发生。它仅在我尝试 运行 到 Visual Studio 时发生,因此我无法使用调试器。我可以通过在启动我的解决方案之前直接从 bin 目录启动 WinSCP.exe GUI 来解决这个问题,这样 msbuild.exe 就无法删除它(因为它正在使用中),但这不是可行的长期解决方案。

为什么 msbuild.exe 会从我的构建目录中删除 WinSCP.exe,我该如何阻止它这样做?

我成功了。出于某种原因,未正确安装 WinSCP-net NuGet 包。我注意到 VS 中的引用列表中缺少 WinSCPnet,但在安装过程中也可能出现其他问题,这导致 msbuild 想要终止可执行文件。我重新安装了 WinSCP-net NuGet 包(我很确定多次),一旦我在参考列表中看到 WinSCPnet,这个问题就停止了。