抛出异常:ChakraBridge.winmd 中的 'System.Exception' 无法开始调试

Exception thrown: 'System.Exception' in ChakraBridge.winmd failed to start debugging

我正在尝试使用 ChakraBridge 在我的应用程序中加载 javascript,并且我遵循了以下块中给出的步骤

Using JavaScript Framework in UWP

还有 GitHub JsBridge

我在我的项目中添加了 ChakraBridge.winmd 作为参考,当调试模式为脚本时它工作得很好。当我将其更改为“仅限托管”时,它为我提供了例外情况,对于发布模式也是如此。

有人可以提出问题所在吗?

这是例子。我正在尝试使用 ChakraBridge API

在我的项目中的 DatePicker 中分配默认日期
if (!string.IsNullOrEmpty(javascriptFunction))
{
    try
    {
        ChakraHost dateHost = new ChakraHost();
        string dateValue = dateHost.RunScript(javascriptFunction);
        var finalDate = DateTime.ParseExact(dateValue, "dd-MM-yyyy", CultureInfo.InvariantCulture);
        datePicker.Date = finalDate.Date;
    }
    catch(Exception ex)
    {
         Debug.WriteLine(ex.Message);
    }
}

javascript函数是

function executeScript(){var now = new Date(new Date().getTime() - (7*24*60*60*1000)); return ('0'+now.getDate()).substr(-2)+'-'+('0'+(now.getMonth()+1)).substr(-2)+'-'+now.getFullYear();} executeScript();

我得到的 StackTrace

at ChakraBridge.ChakraHost..ctor()
at MCS.MCSDynamicViewBuilder.<GenerateDynamicControlforMobile>d__10.MoveNext()

此外,当我在我的笔记本电脑上调试时它工作正常,当我在移动设备或移动仿真器中调试时,它给了我这个异常。是因为 dist 文件夹在我的笔记本电脑上可用 ChakraBridge.winmd?

是的,我可以在使用移动模拟器并将“调试器类型”设置为“仅限托管”时重现您的问题。以下是在 ChakraHost dateHost = new ChakraHost();.

处抛出的异常

An exception of type 'System.Exception' occurred in ChakraBridge.winmd but was not handled in user code

Additional information: failed to start debugging.

ChakraBridge, it calls JsStartDebugging 中,如果处于调试模式,则在当前上下文中开始调试。

#if DEBUG
    // Debug
    if (Native.JsStartDebugging() != JavaScriptErrorCode.NoError)
        throw new Exception("failed to start debugging.");
#endif

但是,Native.JsStartDebugging 方法 returns Fatal 在使用移动模拟器并将“调试器类型”设置为“仅限托管”时。所以我们在应用程序中遇到了上述异常。

这个问题似乎只发生在移动模拟器中。在本地机器或设备上测试时,两者都可以工作。根据代码,这个错误应该只发生在调试模式下。如果我们在我们的解决方案中添加 ChakraBridge 项目,该应用程序可以 运行 在模拟器的发布模式下。现在,您可以在本地计算机或真实移动设备上测试您的应用程序,并在 GitHub 上跟踪 this issue