У меня проблема с интеграцией Gecko на C# с XUL.
1 / Я скачал geckofx45.45.0.34.nupkg. После этого я переименовал его расширение в .zip и разархивировал эту папку. У меня много справочников.
2 / Затем я создал приложение Windows Forms на C# (.NET Framework 4.5.2). Через «обозреватель решений» я добавил две библиотеки (Geckofx-Core.dll и Geckofx-Winforms.dll), созданные на шаге 1.
3 / Затем в панели инструментов при свертывании «Все Windows Forms» я щелкнул правой кнопкой мыши и выбрал «Выбрать элементы». Затем на вкладке «Компоненты .NET Framework» я добавил Geckofx-Winforms.dll.
4 / Я перезапустил Visual Studio 2015
5 / Затем я снова открыл свой проект и добавил компонент «GeckoBrowser» из панели инструментов в свое окно.
6 / Затем я скомпилировал свой проект. Все хорошо. Но когда я попытался выполнить свое приложение, у меня возникла проблема:
An unhandled exception of type 'System.DllNotFoundException' occurred in Geckofx-Core.dll
Additional information: Unable to load DLL 'xul': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
Итак, я загрузил xulrunner на http://ftp.mozilla.org/pub/xulrunner/releases/latest/runtimes/xulrunner-41.0.2.en-US.win32.zip и разархивировал файл. Результат: C: \ xulrunner \ xulrunner-41.0.2.en-US.win32 \ xulrunner \
7 / Затем в свойствах моего проекта в разделе «Пути ссылок» я добавил путь C: \ xulrunner \ xulrunner-41.0.2.en-US.win32 \ xulrunner \
8 / Я снова запустил свое приложение и всегда та же ошибка на экране
Я также безуспешно пытался использовать TlbImp.exe.
Вы можете помочь мне ?
У меня нет интернета на компьютере





Подход, который я использую, требует перетаскивания папки xulrunner в папку приложения, а затем использования этого метода:
private void InitializeGeckoEngine()
{
try
{
if (!Directory.Exists(Paths.XulRunner))
{
MessageBox.Show($"Firefox folder not found at {Paths.XulRunner}!");
}
Xpcom.EnableProfileMonitoring = false;
Xpcom.Initialize(Paths.XulRunner);
}
catch (Exception ex)
{
MessageBox.Show($"Firefox engine not detected or was not loaded correctly. Loading path: {Paths.XulRunner}. Exception details:\n" + ex + ex.InnerException, "Error",
MessageBoxButton.OK, MessageBoxImage.Error);
}
}
Ключевой частью, конечно же, является вызов Xpcom.Initialize ().
Почему вы загрузили
nupkgвместо того, чтобы добавить ссылку на nuget в ссылки на проект?