jav*_*iry 5 wpf autofac caliburn.micro wpf-4.0
我正在WPF使用这些软件包开发一个项目:
<package id="Autofac" version="3.0.2" targetFramework="net40" />
<package id="Caliburn.Micro" version="1.5.1" targetFramework="net40" />
<package id="Caliburn.Micro.Autofac" version="1.5.0" targetFramework="net40" />
Run Code Online (Sandbox Code Playgroud)
直到昨天我将包更新到:
<package id="Autofac" version="3.1.1" targetFramework="net40" />
<package id="Caliburn.Micro" version="1.5.2" targetFramework="net40" />
<package id="Caliburn.Micro.Autofac" version="1.5.0" targetFramework="net40" />
Run Code Online (Sandbox Code Playgroud)
我的意思是,我更新Autofac从3.0.2到3.1.1和Caliburn.Micro从1.5.1到1.5.2(使用Nuget Package Manager).在那之后,我无法运行该项目.我收到此错误:
'在类型'MyAppBootstrapper'上调用与指定绑定约束匹配的构造函数会引发异常.行号'9'和行位置'22'.
在这一行App.xaml:
内部异常消息是:
{"未找到方法:'Void Caliburn.Micro.Bootstrapper`1..ctor(Boolean)'."}
升级是否有任何意义我错过了?
完整的堆栈跟踪:
at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
at Shivar.Tameshk.Server.UI.App.InitializeComponent() in d:\Projects\Shivar.Tameshk\Tameshk\Server\Shivar.Tameshk.Server.UI\App.xaml:line 1
at Shivar.Tameshk.Server.UI.App.Main() in d:\Projects\Shivar.Tameshk\Tameshk\Server\Shivar.Tameshk.Server.UI\obj\Debug\App.g.cs:line 0
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Run Code Online (Sandbox Code Playgroud)
和内部异常的堆栈:
at Caliburn.Micro.Autofac.AutofacBootstrapper`1..ctor()
at Shivar.Tameshk.Server.UI.ServerUiBootstrapper..ctor() in d:\Projects\Shivar.Tameshk\Tameshk\Server\Shivar.Tameshk.Server.UI\ServerUiBootstrapper.cs:line 28
Run Code Online (Sandbox Code Playgroud)
好吧,我找到了答案:)问题出在这里:
的Caliburn.Micro.Autofac.AutofacBootstrapper<TRootViewModel>在Caliburn.Micro.Autofac NuGet包(版本="1.5.0")延伸Caliburn.Micro.Bootstrapper<TRootModel>在Caliburn.Micro包,并具有这样的构造:
public AutofacBootstrapper() : base(true) { }
Run Code Online (Sandbox Code Playgroud)
这意味着它base.ctor通过传递boolean参数(base.ctor(bool))来调用它.事情就是这样.该Caliburn.Micro.Bootstrapper<TRootModel>版本1.5.1具有一个构造函数bool参数:
public Bootstrapper(bool useApplication = true) : base(useApplication) {
this.Start();
}
Run Code Online (Sandbox Code Playgroud)
在版本中1.5.2,它只有一个无参数构造函数:
public Bootstrapper() : base(true) {
this.Start();
}
Run Code Online (Sandbox Code Playgroud)
这是签名:
// Assembly: Caliburn.Micro.Autofac, Version=1.5.0.0
namespace Caliburn.Micro.Autofac {
public class AutofacBootstrapper<TRootViewModel> : Bootstrapper<TRootViewModel> {
public AutofacBootstrapper() : base(true) { }
}
}
// Assembly: Caliburn.Micro, Version=1.5.1.0
namespace Caliburn.Micro {
public class Bootstrapper<TRootModel> : BootstrapperBase {
public Bootstrapper(bool useApplication = true) : base(useApplication) {
this.Start();
}
}
}
// Assembly: Caliburn.Micro, Version=1.5.2.0
namespace Caliburn.Micro {
public class Bootstrapper<TRootModel> : BootstrapperBase {
public Bootstrapper() : base(true) {
this.Start();
}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,Caliburn.Micro.Autofac, Version=1.5.0.0不能使用,Caliburn.Micro, Version=1.5.2.0你必须创建自己的AutofacBootstrapper,这很容易通过引用原始的(这里)或阅读nuget包源来实现.此外,如果您需要,这是我重新实施的.
| 归档时间: |
|
| 查看次数: |
1673 次 |
| 最近记录: |