4

我得到了以下 app.xml:

<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);
        }
    }
}

为什么找不到呢?

4

1 回答 1

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 和 Caliburn 相关的软件包,并按以下方式安装它们:

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'.

我是怎么想出来的:我创建了一个 repro 项目并安装了Caliburn.Micro.Autofac复制你的代码的包,我看到了错误消息。然后,我删除了 app.xaml 的引导程序 init,并var bootstrapper = new Bootstrapper();在后面代码的 App 构造函数中添加了一行。然后我在VS中打开了所有异常复选框的中断,并且我有一个与内部异常TargetInvocationException有关的行new Bootstrapper():无法加载Autofac dll版本...。

于 2012-07-30T07:18:56.603 回答