.NET 5 (dotnet core) single-file bundle support

Advertisement

sckramer
Joined:
Posts:
3

.NET 5 (dotnet core) single-file bundle support

Using NuGet package: 5.17.9
C:\temp>cdsutil -sftp -debug

Message:
CodeBase is not supported on assemblies loaded from a single-file bundle.

Type:
NotSupportedException

StackTrace:
   at System.Reflection.RuntimeAssembly.get_CodeBase()
   at WinSCP.Logger.DoGetAssemblyFilePath(Assembly assembly)
   at WinSCP.Logger.GetAssemblyFilePath()
   at WinSCP.ExeSessionProcess.GetAssemblyPath()
   at WinSCP.ExeSessionProcess.GetExecutablePath()
   at WinSCP.ExeSessionProcess..ctor(Session session, Boolean useXmlLog, String additionalArguments)
   at WinSCP.Session.Open(SessionOptions sessionOptions)
   at cdsutil.cdsSFTP.ListDirectory(String remoteDirectory)

Screen Shot 2020-12-04 at 1.26.58 AM.jpg

Reply with quote

Advertisement

sckramer
Joined:
Posts:
3

Thank you for working on this. I tried a few angles testing this as if it were in a NuGet package with no luck, just a variety of errors including the original. Maybe create a test NuGet package?

Build command:
dotnet publish -c Release -r win-x64 --output bin/publish --self-contained=true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -p:PublishTrimmed=true

Reply with quote

Advertisement

danelliott
Joined:
Posts:
1
Location:
Philadelphia, PA

NuGet & Package Request

Will this fix be released to NuGet soon? May I also get a copy of the package in the meantime?
I do see it will be packaged with 5.18.1.

Reply with quote

Heiko
Joined:
Posts:
2

Need package with fix

Hi,
same issue to me. Will there be a new prerelease v5.18.1 on nuget.org?
May I also get a copy of the package in the meantime?

Thanks in advance.

Reply with quote

Advertisement

Heiko
Joined:
Posts:
2

Re: Need package with fix

Hi Martin,
many thanks for sending me.
And also for publishing a new beta on NuGet. That make my (our) live a bit easier :-)

Unfortunately it doesn't work with that yet. I still get the following error message if I set PublishSingleFile=true
WinSCP.SessionLocalException: The winscp.exe executable was not found at location of the assembly WinSCPnet (), nor the entry assembly Xxxxx (), nor in an installation path. You may use Session.ExecutablePath property to explicitly set path to winscp. exe.
I haven't had time to test if it works when I set ExecutablePath. I'll test it with that as soon as possible. It would be great if you could check that again, too.

Note: I use the following method for the correct localization of the appsettings.json (works for VS debug, publish as single file and not as single file):
private static string GetBasePath()
{
  //The following code configures the application to look at the directory
  //that the single-executable application was run from,
  //rather than the place that the binaries were extracted to.
  //
  //That does not work proper: 
  // Environment.CurrentDirectory or AppDomain.CurrentDomain.BaseDirectory
 
  using ProcessModule processModule = Process.GetCurrentProcess().MainModule;
  return Path.GetDirectoryName(processModule?.FileName);
}

Reply with quote

Advertisement

Advertisement

You can post new topics in this forum