GeckoWebBrowser вылетает в любом ЦПУ - PullRequest
0 голосов
/ 14 ноября 2018

В проекте CF .Net 4.7.2 WPF я загружаю компонент GeckoWebBrowser из UserControl. Я использую пакет nuget id = "Geckofx60.64" version = "60.0.18".

В VS2017 для моего решения и проекта настроено «Любой ЦП».

Чтобы получить репозиторий Firefox64, я добавляю пакет nuget id = "Geckofx60.64.Windows" version = "0.7.0".

Все в порядке, затем я вызываю страницу "index.html" со следующим кодом

public partial class Simulator : UserControl
{
    readonly string indexPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Templates", "index.html");

    private GeckoWebBrowser _browser;

    public Simulator()
    {
        InitializeComponent();
        Xpcom.Initialize("Firefox64");

        var host = new WindowsFormsHost();
        _browser = new GeckoWebBrowser();

        host.Child = _browser;
        GridWeb.Children.Add(host);
    }

    private void Datacontext_ConfigurationChanged(object sender, System.EventArgs e)
    {
        Dispatcher.Invoke(() =>
            _browser.Navigate(indexPath)
        );
    }

    private void Simulator_OnDataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
    {
        var datacontext = DataContext as ServicesViewModel;
        if (datacontext != null)
        {
            datacontext.ConfigurationChanged -= Datacontext_ConfigurationChanged;
            datacontext.ConfigurationChanged += Datacontext_ConfigurationChanged;
        }
    }
}

Логика в моем приложении - обновлять браузер каждый раз, когда в локальные объекты вносятся какие-либо изменения.

Datacontext_ConfigurationChanged будет вызываться для каждого изменения.

Это работает довольно хорошо, за исключением того, что я могу получить это исключение случайным образом во время обновления

"System.AccessViolationException: Attempted to read or write protected memory.."

Это исключение приводит к сбою моего приложения, и я не могу найти решение для этого исключения. Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 23 ноября 2018

Я поменял на Geckofx45.64 и теперь все нормально ..

...