sshnet / sshnet/SSH.NET

Unable to use DLL in Unity UWP app

Offen
#411 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
C#
Sterne
4.4k
Forks
993
Ø Merge
9 T. 21 Std.
Gemergte PRs (30 T.)
1

Beschreibung

My steps:

Built Renci.SshNet.NET35 and copied the DLL at *\src\Renci.SshNet.NET35\bin\Debug\ into Unity assets

Modified script from here as needed:

 using System.IO;
 using Renci.SshNet;
 using Renci.SshNet.Common;
 using Renci.SshNet.Sftp;
  
 String Host = "ftp.csidata.com";
 int Port = 22;
 String RemoteFileName = "TheDataFile.txt";
 String LocalDestinationFilename = "TheDataFile.txt";
 String Username = "yourusername";
 String Password = "yourpassword";
  void Start(){
 using (var sftp = new SftpClient(Host, Port, Username, Password))
 {
     sftp.Connect();
  
     using (var file = File.OpenWrite(LocalDestinationFilename))
     {
         sftp.DownloadFile(RemoteFileName, file);
     }
  
     sftp.Disconnect();
 }
 }

Build solution aimed at HoloLens/UWP apps:

SDK - Universal 10

Target device - Any device

UWP Build Type - D3D

Changed .dll settings to SDK: Any SDK ; ScriptingBackend: Dot Net ; Don't process: Checked

Unity version: 5.5.1f1

Visual Studio version: 2015 update 3

Debugger tells me:

An exception of type 'System.IO.FileLoadException' occurred in Renci.SshNet.dll but was not handled in user code

Additional information: Could not load file or assembly 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

I've tried cleaning and rebuilding the solution as well as adding UnityEngine.dll as a reference but with no luck.

Thank you in advance for the help.

Additional info:

I just tried using the DLL from the Renci.SshNet.UAP10 directory and I get the same error.

If I add the lines

 AssemblyName Core = new AssemblyName("System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Retargetable=Yes");

 Assembly.Load(Core);

It stops throwing the Exception but I have no way to check if it's connected properly because any other code stops working (like trying to write "Connected." in a UI Unity textbox).

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Den UWP-Build in Unity 5.5.1f1 mit den DLLs Renci.SshNet.NET35 und Renci.SshNet.UAP10 reproduzieren, ausgehend vom gemeldeten Fehler beim Laden der System.Core-Assembly. Die DLL-Einstellungen und Assembly-Referenzen vergleichen und anschließend überprüfen, dass die SftpClient-Verbindung ohne FileLoadException hergestellt wird und der nachfolgende Unity-UI-Code ausgeführt wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
csharp, unity
Bereich
game-dev, operating-systems
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.