Windows phone 7 Caliburn.Micro(.WP7)和Bing地图崩溃

Windows phone 7 Caliburn.Micro(.WP7)和Bing地图崩溃,windows-phone-7,caliburn,caliburn.micro,Windows Phone 7,Caliburn,Caliburn.micro,我有一个应用程序,我正在升级一些测试版-我的地图屏幕崩溃。因此,为了弄清真相,我启动了一个全新的空白“WinPhone应用程序” 引用的Caliburn.Micro(昨晚刚从新代码构建)版本:caliburnmicro1296EA635677(来自codeplex) 引用的Microsoft.phone.controls.map.dll 我在主页上加了 <Grid> <Maps:Map /> </Grid> 我在app.xaml中添加了一个引导程序 &

我有一个应用程序,我正在升级一些测试版-我的地图屏幕崩溃。因此,为了弄清真相,我启动了一个全新的空白“WinPhone应用程序”

引用的Caliburn.Micro(昨晚刚从新代码构建)版本:caliburnmicro1296EA635677(来自codeplex)

引用的Microsoft.phone.controls.map.dll

我在主页上加了

<Grid>
 <Maps:Map />
</Grid>

我在app.xaml中添加了一个引导程序

<WP7:PhoneBootStrapper x:Name="bootstrapper" />

当页面在手机模拟器中运行时,主页呈现,我看到一幅世界地图。如果我点击页面上的任何地方,我会得到一个未处理的异常“参数不正确”

如果我移除

从app.xaml-地图正常工作

你觉得怎么样


谢谢你的建议?

我已经找到了答案

这里的关键是,我有这个设置并使用Beta模板编写,当我在VS2010中移动到WinPhone RTM模板时,它停止工作

Caliburn代表我做了一些工作,这些工作是“添加”到RTM模板中的,它们相互冲突。最终,这个问题与Bing地图控件没有任何关系-碰巧-那是我的第一个屏幕-所以这就是我试图解决问题的地方

这是一个毫无帮助的例外:

The parameter is incorrect
我敢肯定,如果你像我一样进入模板的升级路径,任何屏幕上都会出现这种情况。这就是我必须消除的——让一切恢复正常。在新的App.Xaml.cs中-我(通过评论)删除了App.Xaml.cs中的

// Phone-specific initialization
// InitializePhoneApplication();


// Global handler for uncaught exceptions. 
// UnhandledException += Application_UnhandledException;
然后我删除了这些方法体,因为从ctor中删除InitializePhoneApplication()调用后,它只是死代码

// Code to execute when the application is launching (eg, from Start)
// This code will not execute when the application is reactivated
private void Application_Launching(object sender, LaunchingEventArgs e)
{
}

// Code to execute when the application is activated (brought to foreground)
// This code will not execute when the application is first launched
private void Application_Activated(object sender, ActivatedEventArgs e)
{
}

// Code to execute when the application is deactivated (sent to background)
// This code will not execute when the application is closing
private void Application_Deactivated(object sender, DeactivatedEventArgs e)
{
}

// Code to execute when the application is closing (eg, user hit Back)
// This code will not execute when the application is deactivated
private void Application_Closing(object sender, ClosingEventArgs e)
{
}

// Code to execute if a navigation fails
private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)
{
    if (System.Diagnostics.Debugger.IsAttached)
    {
        // A navigation has failed; break into the debugger
        System.Diagnostics.Debugger.Break();
    }
}

// Code to execute on Unhandled Exceptions
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
    if (System.Diagnostics.Debugger.IsAttached)
    {
        // An unhandled exception has occurred; break into the debugger
        System.Diagnostics.Debugger.Break();
    }
}

#region Phone application initialization

// Avoid double-initialization
private bool phoneApplicationInitialized = false;

// Do not add any additional code to this method
private void InitializePhoneApplication()
{
    if (phoneApplicationInitialized)
        return;

    // Create the frame but don't set it as RootVisual yet; this allows the splash
    // screen to remain active until the application is ready to render.
    RootFrame = new PhoneApplicationFrame();
    RootFrame.Navigated += CompleteInitializePhoneApplication;

    // Handle navigation failures
    RootFrame.NavigationFailed += RootFrame_NavigationFailed;

    // Ensure we don't initialize again
    phoneApplicationInitialized = true;
}

// Do not add any additional code to this method
private void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e)
{
    // Set the root visual to allow the application to render
    if (RootVisual != RootFrame)
        RootVisual = RootFrame;

    // Remove this handler since it is no longer needed
    RootFrame.Navigated -= CompleteInitializePhoneApplication;
}

#endregion

特别感谢罗布帮助解开这个谜团

我找到了答案

这里的关键是,我有这个设置并使用Beta模板编写,当我在VS2010中移动到WinPhone RTM模板时,它停止工作

Caliburn代表我做了一些工作,这些工作是“添加”到RTM模板中的,它们相互冲突。最终,这个问题与Bing地图控件没有任何关系-碰巧-那是我的第一个屏幕-所以这就是我试图解决问题的地方

这是一个毫无帮助的例外:

The parameter is incorrect
我敢肯定,如果你像我一样进入模板的升级路径,任何屏幕上都会出现这种情况。这就是我必须消除的——让一切恢复正常。在新的App.Xaml.cs中-我(通过评论)删除了App.Xaml.cs中的

// Phone-specific initialization
// InitializePhoneApplication();


// Global handler for uncaught exceptions. 
// UnhandledException += Application_UnhandledException;
然后我删除了这些方法体,因为从ctor中删除InitializePhoneApplication()调用后,它只是死代码

// Code to execute when the application is launching (eg, from Start)
// This code will not execute when the application is reactivated
private void Application_Launching(object sender, LaunchingEventArgs e)
{
}

// Code to execute when the application is activated (brought to foreground)
// This code will not execute when the application is first launched
private void Application_Activated(object sender, ActivatedEventArgs e)
{
}

// Code to execute when the application is deactivated (sent to background)
// This code will not execute when the application is closing
private void Application_Deactivated(object sender, DeactivatedEventArgs e)
{
}

// Code to execute when the application is closing (eg, user hit Back)
// This code will not execute when the application is deactivated
private void Application_Closing(object sender, ClosingEventArgs e)
{
}

// Code to execute if a navigation fails
private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)
{
    if (System.Diagnostics.Debugger.IsAttached)
    {
        // A navigation has failed; break into the debugger
        System.Diagnostics.Debugger.Break();
    }
}

// Code to execute on Unhandled Exceptions
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
    if (System.Diagnostics.Debugger.IsAttached)
    {
        // An unhandled exception has occurred; break into the debugger
        System.Diagnostics.Debugger.Break();
    }
}

#region Phone application initialization

// Avoid double-initialization
private bool phoneApplicationInitialized = false;

// Do not add any additional code to this method
private void InitializePhoneApplication()
{
    if (phoneApplicationInitialized)
        return;

    // Create the frame but don't set it as RootVisual yet; this allows the splash
    // screen to remain active until the application is ready to render.
    RootFrame = new PhoneApplicationFrame();
    RootFrame.Navigated += CompleteInitializePhoneApplication;

    // Handle navigation failures
    RootFrame.NavigationFailed += RootFrame_NavigationFailed;

    // Ensure we don't initialize again
    phoneApplicationInitialized = true;
}

// Do not add any additional code to this method
private void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e)
{
    // Set the root visual to allow the application to render
    if (RootVisual != RootFrame)
        RootVisual = RootFrame;

    // Remove this handler since it is no longer needed
    RootFrame.Navigated -= CompleteInitializePhoneApplication;
}

#endregion

特别感谢罗布帮助解开这个谜团

我无法用最新的来源重现这个问题。问题解决了吗?我无法用最新的来源重现问题。问题解决了吗?