Ich versuche, eine einzelne Datei ausführbare Datei erstellen. Der Code ist .NET-basiert und stützt sich auch auf einige zusätzliche Bibliotheken einschließlich SQLite.Kann ILMerge nicht zum Erstellen von Single-Datei-Konsole-Anwendung, die funktioniert
Wenn ich den Quellcode kompiliere, gehen alle relevanten Dateien in das Release-Verzeichnis, obwohl die SQLite DLL (sqlite3.dll) in ein Unterverzeichnis (x86) geht. Ich denke, das passiert, weil ich SQLite-Raw verwende und das sowohl x86- als auch x64-Kopien der DLL "ausspuckt".
Meine Anfangsbefehlszeile, um zu versuchen ist:
ILMerge /out:GEDtoRH.all.exe GEDtoRH.exe *.dll /target:exe /targetplatform:"v4,C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2" /wildcards /log
Dies erzeugt die folgende Ausgabe, die mir Sorgen macht:
AssemblyResolver: Assembly 'System.Runtime.WindowsRuntime' is referencing assembly 'System.Runtime'.
...
AssemblyResolver: Did not find assembly in framework directory.
AssemblyResolver: Unable to resolve reference. (It still might be found, e.g., in the GAC.)
AssemblyResolver: Assembly 'System.Runtime.WindowsRuntime' is referencing assembly 'System.Threading.Tasks'.
...
AssemblyResolver: Did not find assembly in framework directory.
AssemblyResolver: Unable to resolve reference. (It still might be found, e.g., in the GAC.)
AssemblyResolver: Assembly 'System.Runtime.WindowsRuntime' is referencing assembly 'System.IO'.
...
AssemblyResolver: Did not find assembly in framework directory.
AssemblyResolver: Unable to resolve reference. (It still might be found, e.g., in the GAC.)
Location for referenced module 'sqlite3' is ''
- Soll ich über die ungelösten Referenzen betroffen sein? Der Grund warum ich frage ist, dass die fertige ausführbare Datei nicht funktioniert. Es bricht mit einem Null-Referenz Ausnahme (Objektverweis nicht auf eine Instanz eines Objekts festgelegt) auf dieser Linie:
file = await StorageFile.GetFileFromPathAsync(filename);
Die un-fusionierten Version der ausführbaren Datei funktioniert :(Es ist nicht "Dateiname" ist defekt, da ich versucht habe, einige zusätzliche Tests hinzuzufügen und es ist in Ordnung.
- Versuchen Sie, wie ich die sqlite3.dll zu der Liste der Dinge hinzufügen könnte Wenn ich versuche, beschwert sich ILMerge nur mit einem Fehler "Konnte Assembly nicht geladen werden."
Danke - das macht Sinn :) Gibt es etwas, was ich tun kann, um eine einzelne ausführbare Datei zu erstellen, die auch den Code aus der SQLite enthält dLL? –