Я пытаюсь создать однофайловый исполняемый файл. Код основан на .Net, а также зависит от некоторых дополнительных библиотек, включая SQLite.
Когда я компилирую исходный код, все соответствующие файлы помещаются в каталог Release, хотя DLL SQLite (sqlite3.dll) помещается в подкаталог (x86). Я думаю, это происходит потому, что я использую SQLite-raw, и он «выплевывает» как x86, так и x64 копии DLL.
Моя начальная командная строка:
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
Это приводит к следующему выводу, который меня беспокоит:
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 ''
- Должен ли я беспокоиться о неразрешенных ссылках? Причина, по которой я спрашиваю, заключается в том, что готовый исполняемый файл не работает. Он прерывается с исключением нулевой ссылки (ссылка на объект не указывает на экземпляр объекта) в этой строке:
file = await StorageFile.GetFileFromPathAsync(filename);
Необъединенная версия исполняемого файла работает нормально :( Это не "имя файла", которое сломано, поскольку я пытался добавить некоторые дополнительные тесты, и это нормально.
- Как бы я ни пытался добавить sqlite3.dll в список вещей для загрузки, если я попытаюсь, ILMerge просто жалуется на ошибку «Не удалось загрузить сборку».