2

I am new working in a lab that sends data from a local computer to an HPC. I have been all day working around the following problem I am not familiar with it at all.

4/19/2022 3:21:28 PM ERROR: WinSCP.SessionLocalException: The winscp.exe executable was not found at location of the assembly WinSCPnet (C:\WRGLPipeline\WRGLPipeline\bin\dlls), nor the entry assembly WRGLPipeline (C:\WRGLPipeline\WRGLPipeline\bin), nor in an installation path. You may use Session.ExecutablePath property to explicitly set path to winscp.exe.
   at WinSCP.ExeSessionProcess.GetExecutablePath()
   at WinSCP.ExeSessionProcess..ctor(Session session, Boolean useXmlLog, String additionalArguments)
   at WinSCP.Session.Open(SessionOptions sessionOptions)
   at WRGLPipeline.PanelPipelineWrapper.ConnectToIridis()
   at WRGLPipeline.PanelPipelineWrapper.UploadAndExecute()
   at WRGLPipeline.PanelPipelineWrapper.ExecutePanelPipeline()
   at WRGLPipeline.Programme.Main(String[] args)

As far I have been reading in documentation and forums everything is ok in my directories but I would like to ensure this as I am practically new working on Windows machines.

This is the structure of my bin folder

.
├── WRGLPipeline.exe
├── WRGLPipeline.exe.config
├── WRGLPipeline.ini
├── dlls
│   ├── CommandLine.dll
│   ├── Microsoft.Extensions.Configuration.Abstractions.dll
│   ├── Microsoft.Extensions.Configuration.FileExtensions.dll
│   ├── Microsoft.Extensions.Configuration.Ini.dll
│   ├── Microsoft.Extensions.Configuration.dll
│   ├── Microsoft.Extensions.FileProviders.Abstractions.dll
│   ├── Microsoft.Extensions.FileProviders.Physical.dll
│   ├── Microsoft.Extensions.FileSystemGlobbing.dll
│   ├── Microsoft.Extensions.Primitives.dll
│   ├── System.Buffers.dll
│   ├── System.Memory.dll
│   ├── System.Numerics.Vectors.dll
│   ├── System.Runtime.CompilerServices.Unsafe.dll
│   ├── System.Security.Cryptography.Algorithms.dll
│   ├── System.Security.Cryptography.Primitives.dll
│   ├── System.ValueTuple.dll
│   └── WinSCPnet.dll
└── keys
    ├── nhs.key
    └── soton.key

As far I can see the executable is in the bin folder. Now I am looking at this from home, do I need to leave a copy of my executable in the dlls folder? Following the error message, If I need to specify the Session.ExecutablePath, where should this be?

These is the files before compiling the application

├── AuxillaryFunctions.cs
├── Coverage.cs
├── FileManagement.cs
├── GenerateGenotypingVCFs.cs
├── GenotypingPipelineWrapper.cs
├── Manual
│   └── WRGLPipeline-Manual.md
├── MyeloidPipelineWrapper.cs
├── PanelPipelineWrapper.cs
├── ParseArgs.cs
├── ParseBED.cs
├── ParseSampleSheet.cs
├── ParseVCF.cs
├── Programme.cs
├── ProgrammeParameters.cs
├── Properties
│   └── AssemblyInfo.cs
├── Static
│   ├── PipelineInterface.exe
│   ├── WRGLPipeline.ini
│   └── WRGL_logo.ico
├── WRGLPipeline.csproj
├── WRGLPipeline.csproj.user
├── app.config
└── packages.config

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="CommandLineParser" version="2.8.0" targetFramework="net472" />
  <package id="Microsoft.Extensions.Configuration" version="3.1.9" targetFramework="net472" />
  <package id="Microsoft.Extensions.Configuration.Abstractions" version="3.1.9" targetFramework="net472" />
  <package id="Microsoft.Extensions.Configuration.FileExtensions" version="3.1.9" targetFramework="net472" />
  <package id="Microsoft.Extensions.Configuration.Ini" version="3.1.9" targetFramework="net472" />
  <package id="Microsoft.Extensions.FileProviders.Abstractions" version="3.1.9" targetFramework="net472" />
  <package id="Microsoft.Extensions.FileProviders.Physical" version="3.1.9" targetFramework="net472" />
  <package id="Microsoft.Extensions.FileSystemGlobbing" version="3.1.9" targetFramework="net472" />
  <package id="Microsoft.Extensions.Primitives" version="3.1.9" targetFramework="net472" />
  <package id="System.Buffers" version="4.5.1" targetFramework="net472" />
  <package id="System.Memory" version="4.5.4" targetFramework="net472" />
  <package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" />
  <package id="System.Runtime.CompilerServices.Unsafe" version="4.7.1" targetFramework="net472" />
  <package id="WinSCP" version="5.17.10" targetFramework="net47" />
</packages>
Martin Prikryl
  • 188,800
  • 56
  • 490
  • 992

1 Answers1

1

It seems that you believe the error refers to the .exe of your application (WRGLPipeline.exe). It does not. It refers to WinSCP.exe. WinSCP .NET assembly WinSCPnet.dll needs WinSCP.exe binary to work.

See https://winscp.net/eng/docs/library_install#installing

The easiest solution is using WinSCP NuGet package that includes both binaries.

Martin Prikryl
  • 188,800
  • 56
  • 490
  • 992