64 bits WinSCP version

Advertisement

Advertisement

Advertisement

Phil
Guest

Re: I third this

Drag and drop from 32-bit apps into Windows Explorer doesn't work properly under 64-bit XP. There's something about the 64-bit explorer such that when the item is dragged from WinSCP to an explorer window, a folder entitled (for instance) scp51328 is created in the explorer, and then WinSCP itself complains with the
WinSCP was not able to detect folder, where the dragged file(s) was dropped. Either ...
I think that's the reason that the TortoiseSVN guys have an x64 version as well as an x86 version.

Anyhow, if you need access or work done on a 64-bit platform, you can get to me from the contact links at www.pagaros.com.au.

Reply with quote

martin
Site Admin
martin avatar
Joined:
Posts:
36,456
Location:
Prague, Czechia

Re: I third this

Phil wrote:

Drag and drop from 32-bit apps into Windows Explorer doesn't work properly under 64-bit XP. There's something about the 64-bit explorer such that when the item is dragged from WinSCP to an explorer window, a folder entitled (for instance) scp51328 is created in the explorer, and then WinSCP itself complains with the "WinSCP was not able to detect folder, where the dragged file(s) was dropped. Either ...".

I think that's the reason that the TortoiseSVN guys have an x64 version as well as an x86 version.
It should be enough to make 64-bit drag&drop shell extension. It is planned. TortoiseSNV is Explorer-plugin not a regular application.

Anyhow, if you need access or work done on a 64-bit platform, you can get to me from the contact links at www.pagaros.com.au.
Thanks. I will do once I have anything to test.

Reply with quote

Advertisement

daaron
Guest

Still getting this error with WinSCP 4.1.8

I'm using WinSCP 4.1.8 on Windows Vista x64, and I get this same error:
WinSCP was not able to detect folder, where the dragged files(s) was dropped. etc.
It appears to work just fine when I drag files from WinSCP to the desktop (a 64-bit process) or to Windows Explorer x64, but when I try to drag files to the 32-bit Windows Explorer (which I use sometimes for compatibility with certain 32-bit Explorer extensions), I get this error.

Is it possible to install both the 32-bit and 64-bit WinSCP Explorer extensions on x64 Windows? (Many other apps do this.)

Thanks,

Reply with quote

martin
Site Admin
martin avatar

Re: Still getting this error with WinSCP 4.1.8

@daaron: Thanks for your post. This issue has been added to tracker.
Can you provide me your email address, so I can send you a debug version of WinSCP to test this? I do not have a 64-bit system available. If you do not want to post the address here, you can send me an email. You will find my address (if you log in) in my forum profile. Please include link to this topic. Thanks.

Reply with quote

Advertisement

Guest

x64 bit

This totally need to be offered in x64 bit. As one of the better FTP clients I would think skimping on this is wrong.
In fact all programs should be written for 64 bit computers. It doesn't make sense not to. Any program intending to run in an x64 environment should run native. Even if no serious performance benefit is evident, there certainly is a benefit. Function, operation, and integration with the OS software and a few benefits of having it run native. Sure it works as a 32bit app, but it would play nicer as a x64 app on a x64 machine.

Reply with quote

Nnyan
Joined:
Posts:
1
Location:
Sacramento

martin wrote:

There are no plans for that.
Has this changed? It would be nice to get a x64 version of this.

Reply with quote

Valera
Guest

First of all, thank you for the nice product!

But this topic is almost FIVE years old.
Is there any chances to see WinSCP x64?

Thanks!

Reply with quote

Advertisement

martin
Site Admin
martin avatar

We cannot make 64 bit version of WinSCP in near future due to technical constraints.

Anyway, what advantage would 64 bit version bring to you?

Reply with quote

x64PowerUser
Guest

Unsatisfied due to no native 64 bit support

@martin: If properly optimized, a 64 bit application would bring increased speed in processing the scripts that handle downloading large numbers of files from an FTP server. Yes, it requires more memory for these optimizations, but real power users generally have plenty of memory to spare for these things.

I am currently searching for, and willing to pay for a good quality, fast, properly optimized native 64 bit FTP client. I am passing on WinSCP because it does not support 64 bit. I am passing on FileZilla for the same reason. Both are slow when compared to a product like Pragma Fortress, SmartFTP, etc.

"Technical constraints" usually means there isn't a programmer that uses the required platform, nor has the expertise to optimize for 64 bit. Since that expertise doesn't exist here, I suppose I'll keep looking.

Reply with quote

martin
Site Admin
martin avatar
Joined:
Posts:
36,456
Location:
Prague, Czechia

Re: Unsatisfied due to no native 64 bit support

x64PowerUser wrote:

"Technical constraints" usually means there isn't a programmer that uses the required platform, nor has the expertise to optimize for 64 bit. Since that expertise doesn't exist here, I suppose I'll keep looking.
"Technical contraints" means that the first stable version of 64 bit C++ Builder was released only a month ago.

Reply with quote

Advertisement

wafflemanx
Guest

Advantages

We use WinSCP with SSIS, since SSIS does not have a Secure FTP component. Since WinSCP is a 32bit app, we need to run the whole SSIS in 32 bit and loads suffer from the performance. It would be beneficial if we could run the whole project in 64bit.

Reply with quote

martin
Site Admin
martin avatar
Joined:
Posts:
36,456
Location:
Prague, Czechia

Re: Advantages

@wafflemanx: I suppose you are referring to WinSCP .NET assembly, not WinSCP itself.
While the assembly is made available in binary form for 32 bit only, it should be trivial to download the source code and compile it for 64 bit yourself. But I admit I haven't tested it. Will do.

Added to tracker:
https://winscp.net/tracker/1016

Edit: Actually, I do not get this. WinSCP .NET assembly has platform set to AnyCPU, so it can load as 64-bit into 64-bit process. What particular problems are you having with this?

Reply with quote

lemsky
Guest

Hi,
I am a follower of WinSCP and take the opportunity to congratulate you for the work. Now I am migrating to Linux I've tried running WinSCP directly with "wine" on a 64-bit Linux distro (based Debian). The fact is that the .exe file runs WinSCP not be 32 bits. I understand that if the ejeccución 64 WinSCP on Linux would be very easy and will surely be one of the most commonly used SFTP clients.
In any case, congratulations and thanks for the work.

Reply with quote

Advertisement

wasted
Guest

Well, a good use case for me would be using 64bit GSSAPI for login. This is not possible with 32bit application.

Reply with quote

bmcnish
Joined:
Posts:
10

64bit COM/OLE

I am working on a 64bit Windows 2012 R2 server and converting old VBS scripts that use the WinSCPnet.dll to transfer files. The issue I come across is that the DLL is 32bit making it impossible to run the converted script outside of C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe. It would really be helpful if this interface was 64bit.

Reply with quote E-mail

Advertisement

martin
Site Admin
martin avatar

Re: 64bit COM/OLE

@bmcnish: The winscpnet.dll assembly targets "AnyCPU". So you can use it both in 32-bit and 64-bit environments. We will need more details about your problem to help you.

Reply with quote

aloishammer
Joined:
Posts:
3
Location:
.ca

@martin, since no one else has mentioned it: I've had good results compiling PuTTY "beta" and snapshot source with both MSVC++ 2015 Community Edition and the RC of MSVC++ 2017.

There's some minor breakage when compiling against a snapshot: the included VS2012 solution imports fine, but someone forgot that a couple files needed during the resource compile pass aren't in the same directory as the solution, and weren't included in any search path that matches the location of the .RC2s. This can be fixed with a symlink. There is what appears to be a test project or perhaps an unfinished project under the solution that does not build at all, and I haven't tried to make it work. I simply removed it from the solution. The main executable and all the other projects (plink, Pageant, etc.) are tested and working.

The git repo doesn't include the solution files, the InnoSetup installer source, or any other "support" files, which I find bizarre.

I haven't even attempted to compile to x86, since the PuTTY team already provides those snapshot builds. All of my x64-targeted builds have seemed to work perfectly, both out of the box and with extensive modifications to the projects to enable optimization flags. This is also under both the 2015 and the 2017 RC Community Edition environments.

I've been using my own snapshot builds, consisting of about fifteen distinct source snapshots (latest 2017-01-04 or so) for a little over a year.

It would be very nice to see official, native, x64-targeted builds of WinSCP and other highly useful Free and freeware utilities for use on Server environments where the x86 compatibility layer has been removed due to resource constraints or performance considerations.

I don't personally have a need for it, but apparently Microsoft have revived the ARM target (Aarch32 only?) for Windows, so it's likely people are going to start asking for it in the near future. This would be a good time for the PuTTY team and users of PuTTY-derived code to begin the process of ensuring that the code compiles cleanly across multiple architectures in general.

I hope this information about PuTTY compile targets is useful for the WinSCP team.

Reply with quote

Advertisement

Guest

Re: 64bit COM/OLE

This is what happens when I run a powershell script using the native 64bit version of PowerShell.exe:
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Windows\system32>\\tpa-isl\ftp\budd\aig_autoftp.bat

C:\Windows\system32>PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& '\
\tpa-isl\ftp\budd\WINSCP.ps1'";
Add-Type : Could not load file or assembly
'file:///C:\Windows\system32\WinSCPnet.dll' or one of its dependencies.
Operation is not supported. (Exception from HRESULT: 0x80131515)
At \\tpa-isl\ftp\budd\WINSCP.ps1:1 char:1
+ Add-Type -Path "WinSCPnet.dll" -ErrorAction Stop
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Add-Type], FileLoadException
    + FullyQualifiedErrorId : System.IO.FileLoadException,Microsoft.PowerShell
   .Commands.AddTypeCommand


New-Object : A positional parameter cannot be found that accepts argument '
    Protocol = [WinSCP.Protocol]::Sftp
    HostName = "prod-mfttpg01"
    UserName = "fteadmin"
    Password = "Qurman98"
    SshHostKeyFingerprint = "ssh-rsa 2048
1d:fc:6c:2b:a8:89:24:13:9b:95:61:99:47:44:e1:26"
                                                              '.
At \\tpa-isl\ftp\budd\WINSCP.ps1:19 char:19
+ $sessionOptions = new-object -ComObject WinSCP.SessionOptions {
+                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [New-Object], ParameterBind
   ingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell
   .Commands.NewObjectCommand

New-Object : Cannot find type [WinSCP.Session]: verify that the assembly
containing this type is loaded.
At \\tpa-isl\ftp\budd\WINSCP.ps1:29 char:12
+ $session = New-Object WinSCP.Session
+            ~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidType: (:) [New-Object], PSArgumentExcepti
   on
    + FullyQualifiedErrorId : TypeNotFound,Microsoft.PowerShell.Commands.NewOb
   jectCommand

You cannot call a method on a null-valued expression.
At \\tpa-isl\ftp\budd\WINSCP.ps1:34 char:1
+ $session.SessionLogPath($slog)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

You cannot call a method on a null-valued expression.
At \\tpa-isl\ftp\budd\WINSCP.ps1:38 char:1
+ $session.Open($sessionOptions)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

New-Object : A positional parameter cannot be found that accepts argument '
    TransferMode = [WinSCP.TransferMode]::Binary
                                                                '.
At \\tpa-isl\ftp\budd\WINSCP.ps1:57 char:20
+ $transferOptions = new-object -ComObject WinSCP.TransferOptions {
+                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [New-Object], ParameterBind
   ingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell
   .Commands.NewObjectCommand

New-Object : A positional parameter cannot be found that accepts argument '
    OtherRead = $True
    OtherExecute = $True
    UserRead = $True
    UserWrite = $True
    UserExecute = $True
    GroupRead = $True
    GroupExecute = $True
                                                            '.
At \\tpa-isl\ftp\budd\WINSCP.ps1:75 char:16
+ $permissions = new-object -ComObject WinSCP.FilePermissions {
+                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [New-Object], ParameterBind
   ingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell
   .Commands.NewObjectCommand

You cannot call a method on a null-valued expression.
At \\tpa-isl\ftp\budd\WINSCP.ps1:99 char:1
+ $transferResult =
$session.PutFiles("\\tpa-isl\ftp\save\kaiser\DNC_20170214.log" ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

You cannot call a method on a null-valued expression.
At \\tpa-isl\ftp\budd\WINSCP.ps1:100 char:1
+ $transferResult.Check()
+ ~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

You cannot call a method on a null-valued expression.
At \\tpa-isl\ftp\budd\WINSCP.ps1:114 char:5
+     $session.Dispose()
+     ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull


C:\Windows\system32>

Reply with quote

martin
Site Admin
martin avatar

@crystalidea: Sorry, nothing has changed since you have asked the last time.

I do not see any strong use case for the 64-bit version, that would justify the immense work that it requires.

Reply with quote

Advertisement

aloishammer
Joined:
Posts:
3
Location:
.ca

Martin, is there any chance you'd consider moving to a free-as-in-beer build environment? I pulled down the source to see if I could cajole it into compiling against a Win64 target, but I don't have Embarcadero C++ Builder XE6 Professional. I imagine most people don't. I do have Visual Studio 2015 (because it's free). I didn't bother checking the other requirements.

Also, in response to your note above about there not being a good reason to make an x64 build of WinSCP available - Microsoft have been providing Server (optionally) without WoW64 since at least Server 2008 R2. Leaving out WoW64 means significantly lower memory and disk requirements. I would absolutely install Windows without WoW64 if I could get away with it... but I can't, because I need tools like WinSCP that haven't made x64 builds available.

There are some other very good reasons; too many to go into here, but one is that ASLR is crippled on 32-bit systems, in 32-bit subsystems, and in 32-bit binaries. It's not a Windows-only problem, either.

Reply with quote

martin
Site Admin
martin avatar
Joined:
Posts:
36,456
Location:
Prague, Czechia

aloishammer wrote:

Martin, is there any chance you'd consider moving to a free-as-in-beer build environment? I pulled down the source to see if I could cajole it into compiling against a Win64 target, but I don't have Embarcadero C++ Builder XE6 Professional. I imagine most people don't. I do have Visual Studio 2015 (because it's free). I didn't bother checking the other requirements.
It's unlikely. I do not have a time to reimplement WinSCP using a different toolkit.

Also, in response to your note above about there not being a good reason to make an x64 build of WinSCP available - Microsoft have been providing Server (optionally) without WoW64 since at least Server 2008 R2. Leaving out WoW64 means significantly lower memory and disk requirements. I would absolutely install Windows without WoW64 if I could get away with it... but I can't, because I need tools like WinSCP that haven't made x64 builds available.

There are some other very good reasons; too many to go into here, but one is that ASLR is crippled on 32-bit systems, in 32-bit subsystems, and in 32-bit binaries. It's not a Windows-only problem, either.
Thanks for this information.

Reply with quote

aloishammer
Joined:
Posts:
3
Location:
.ca

martin wrote:

It's unlikely. I do not have a time to reimplement WinSCP using a different toolkit.
Aw, man. Well, I had to ask. I'd like to help move WinSCP forward; I really prefer it to the other SFTP solutions I have available.

The GSSAPI requirement noted above in the thread is actually also a pretty good reason to try and get a working 64-bit build out; PuTTY / WinSCP do or at least can use a number of third-party libraries. As the greater number of developers move to 64-bit builds, a lot of them are no longer making 32-bit GSSAPI (and other) libraries available, because it's extra effort and they don't see a reason to.

Microsoft themselves have already retired 32-bit builds of MAJOR projects, like SQL Server and Exchange Server. It's getting so the only thing left is Windows itself, and that only on the desktop.

In short, WinSCP is becoming less compatible and (comparatively) less secure as other developers retire the i386 architecture for good.

Reply with quote

Advertisement

Advertisement

You can post new topics in this forum