2012-07-29 62 views
4

我得到了以下app.xml的:标签 '引导程序' 并不在XML命名空间存在 'CLR的命名空间:XXX'

<Application 
    x:Class="WeDoneIt.WP2.App" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:WeDoneIt.WP2" 
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" 
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"> 

    <Application.Resources> 
     <local:Bootstrapper x:Key="bootstrapper" /> 
    </Application.Resources> 
</Application> 

和引导程序:

namespace WeDoneIt.WP2 
{ 
    public class Bootstrapper : Caliburn.Micro.Autofac.AutofacBootstrapper 
    { 
     public Bootstrapper() 
     { 
      Instance = this; 
     } 

     protected static Bootstrapper Instance { get; private set; } 

     protected override void ConfigureContainer(ContainerBuilder builder) 
     { 
      builder.RegisterType<ShellViewModel>(); 
      builder.RegisterType<ItemViewModel>(); 

      base.ConfigureContainer(builder); 
     } 

     public static T ResolveModel<T>() where T : INotifyPropertyChangedEx 
     { 
      return (T)Instance.GetInstance(typeof (T), null); 
     } 
    } 
} 

为什么就可以了找不到?

+0

它的标签为wpf,但我看到'Microsoft.Phone'命名空间...所以你使用WPF或WP7,因为引导是不同的[见](http://caliburnmicro.codeplex.com/wikipage?title=Basic%20Configuration%2c%20Actions%20and%20Conventions&referringTitle =文档)。否则你的代码看起来很好,你可以发布完整的stacktrace吗?您的'WeDoneIt.WP2.App'和'Bootstrapper'是否在同一个程序集中? – nemesv 2012-07-29 11:33:41

+0

修复了标签,是的,它们在同一个组件中。 – jgauffin 2012-07-29 12:31:18

回答

6

您的问题是由Caliburn.Micro.Autofac包引起的。它声明它需要Autofac (>= 2.6.1.841),所以Nuget将下载满足这种体面的当前Autofac (2.6.3.862)的最新版本。但Caliburn.Micro.Autofac程序集是针对Autofac版本2.6.1.841构建的,所以它不会找到所需的Autofac dll,并通过这个神秘的异常无法构建。

要解决这个问题:删除所有Autofac和卡利相关的软件包,并以下列方式安装:

PM> Install-Package Caliburn.Micro 
Successfully installed 'Caliburn.Micro 1.3.1'. 

PM> Install-Package Autofac -Version 2.6.1.841 
Successfully installed 'Autofac 2.6.1.841'. 

PM> Install-Package Caliburn.Micro.Autofac -IgnoreDependencies 
Successfully installed 'Caliburn.Micro.Autofac 1.4.1'. 

我怎么想通了:我创建了一个摄制项目,并安装了Caliburn.Micro.Autofac包复制你的代码和我看到了错误信息。然后,我删除了app.xaml的引导程序init,并在后面的代码中在应用程序的构造函数中添加了一条var bootstrapper = new Bootstrapper();行。然后我打开了在VS中的所有异常复选框的休息,我有一个TargetInvocationExceptionnew Bootstrapper()与内部的例外:无法加载Autofac dll版本....

+0

谢谢。我认为这是这样的,因为我注意到当我删除'ConfigureContainer'过载时,所有东西都编译好了。 – jgauffin 2012-07-30 08:44:14

相关问题