Моя команда работает над проектом Xamarin, который работает на Linux с использованием GTK. В первую очередь мы используем Visual Studio 2019 для сборки и тестирования. Я установил GTK # для .NET, а также Mono. У остальных членов нашей команды нет проблем с запуском проекта GTK в Windows на их компьютере, но когда я устанавливаю свой проект GTK в качестве запускаемого проекта и запускаю его, я получаю следующую ошибку:
Exception thrown: 'System.DllNotFoundException' in gtk-sharp.dll
An unhandled exception of type 'System.DllNotFoundException' occurred in gtk-sharp.dll
Unable to load DLL 'libgtk-win32-2.0-0.dll': The specified procedure could not be found. (Exception from HRESULT: 0x8007007F)
Я понимаю, что некоторыелюди получают эту проблему, если правильный PATH не установлен в их системе, но, насколько я могу судить, это не проблема. Я также гарантировал, что libgtk-win32-2.0-0.dll
присутствует в обеих установках. У меня есть два жестких диска: C: мой системный диск и D: мой жесткий диск, на котором живут Visual Studio и сам проект. Я попытался установить GTK # для .NET на оба диска и добавить оба каталога GTK / bin, а также каталог mono \ bin в системную переменную PATH. Я включил весь текст моей системной переменной Path ниже:
C:\Program Files (x86)\Common Files\Oracle\Java\javapath;
C:\ProgramData\Oracle\Java\javapath;
C:\Windows\system32;
C:\Windows;
C:\Windows\System32\Wbem;
C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;
C:\Python34;
C:\Python34\Scripts;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;
D:\Program Files\Java\jdk1.7.0_80\bin;
D:\Programming\MinGW\bin;
C:\Program Files (x86)\GtkSharp\2.12\bin;
C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;
C:\Program Files (x86)\MySQL\MySQL Server 5.7\bin;
D:\Program Files\Git\cmd;
D:\Program Files\Notepad++;%SYSTEMROOT%\System32\OpenSSH\;
C:\Program Files\dotnet\;
D:\Programming\Python\Anaconda3;
C:\Users\Blake\AppData\Roaming\jupyter;
D:\Program Files (x86)\Brackets\command;
D:\cygwin\bin;
C:\Program Files\nodejs\;
C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;
C:\Program Files (x86)\GtkSharp\2.12\bin;
C:\Program Files (x86)\Mono\bin;
Ниже я также включил содержимое окна вывода Visual Studio на случай, если это вообще поможет:
'TestProject.GTK.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'TestProject.GTK.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'D:\Programming\Xamarin\test-project\TestProject.GTK\bin\Debug\TestProject.GTK.exe'. Symbols loaded.
'TestProject.GTK.exe' (CLR v4.0.30319: TestProject.GTK.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\gtk-sharp\v4.0_2.12.0.0__35e10195dab3c99f\gtk-sharp.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'TestProject.GTK.exe' (CLR v4.0.30319: TestProject.GTK.exe): Loaded 'D:\Programming\Xamarin\test-project\TestProject.GTK\bin\Debug\Xamarin.Forms.Platform.GTK.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'TestProject.GTK.exe' (CLR v4.0.30319: TestProject.GTK.exe): Loaded 'D:\Programming\Xamarin\test-project\TestProject.GTK\bin\Debug\TestProject.dll'. Symbols loaded.
'TestProject.GTK.exe' (CLR v4.0.30319: TestProject.GTK.exe): Loaded 'D:\Programming\Xamarin\test-project\TestProject.GTK\bin\Debug\Xamarin.Forms.Core.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'TestProject.GTK.exe' (CLR v4.0.30319: TestProject.GTK.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\netstandard\v4.0_2.0.0.0__cc7b13ffcd2ddd51\netstandard.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'TestProject.GTK.exe' (CLR v4.0.30319: TestProject.GTK.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'TestProject.GTK.exe' (CLR v4.0.30319: TestProject.GTK.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\glib-sharp\v4.0_2.12.0.0__35e10195dab3c99f\glib-sharp.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'TestProject.GTK.exe' (CLR v4.0.30319: TestProject.GTK.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\atk-sharp\v4.0_2.12.0.0__35e10195dab3c99f\atk-sharp.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'TestProject.GTK.exe' (CLR v4.0.30319: TestProject.GTK.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\gdk-sharp\v4.0_2.12.0.0__35e10195dab3c99f\gdk-sharp.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
Exception thrown: 'System.DllNotFoundException' in gtk-sharp.dll
An unhandled exception of type 'System.DllNotFoundException' occurred in gtk-sharp.dll
Unable to load DLL 'libgtk-win32-2.0-0.dll': The specified procedure could not be found. (Exception from HRESULT: 0x8007007F)
'TestProject.GTK.exe' (CLR v4.0.30319: TestProject.GTK.exe): Loaded 'D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\PrivateAssemblies\Runtime\Microsoft.VisualStudio.Debugger.Runtime.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'TestProject.GTK.exe' (CLR v4.0.30319: TestProject.GTK.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'TestProject.GTK.exe' (CLR v4.0.30319: TestProject.GTK.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'TestProject.GTK.exe' (CLR v4.0.30319: TestProject.GTK.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
Моя среда - Windows 10, и я использую Visual Studio 2019.
Я не уверен, что делать дальше или какие другие изменения я могу внести. Я пытался найти решения, но практически не существует, и, насколько я могу судить, не существует ни одного, который бы не требовал от меня изменения проекта таким образом, который мог бы повлиять на его работу для членов моей команды или при его запуске. на реальном устройстве Linux (что является конечной целью). Любое понимание этого будет высоко оценено.