无法在设计时加载 DLL 'sqlite3'

Unable to load DLL 'sqlite3' at design time

当我打开 WP8.1 Universal 项目的 XAML Designer 并像这样设置数据上下文时,我收到无法加载 DLL 'sqlite3' 的错误消息:

DataContext="{Binding IntakeReasonListViewModel, Source={StaticResource Locator}}"

Locator 的设计类似于推荐的 MVVM Light View Model Locator,并使用 ServiceLocator。 该错误消息仅在设计时出现,并且在执行时没有任何问题。我也有 3 个应用程序。其中 2 个有此问题,1 个没有。但是我找不到它们之间关于 SQLite 的任何区别。

我发现不同的线程有类似的消息,但所有这些问题都出现在运行时并导致保存项目时出现一些错误,而我的问题则没有。

编辑:我发现问题是我通过存储库 class 将我的数据访问注入到视图模型。设计者通过这种方式尝试加载数据访问,包括 sqlite 模块..

有谁知道在设计时避免这种情况的方法吗?

谢谢

问候 NPadrutt

您始终可以在设计时使用单独的 ViewModel。我发现每个视图(例如 MainPage)有 3 个文件是一个好习惯:

  • IMainPageViewModel(包含可绑定属性、命令等...)
  • MainPageViewModel([=10= 的子项],实现 IMainPageViewModel
  • MainPageDesignViewModel([=10= 的子项],实现 IMainPageViewModel

这样您就可以避免加载其他服务,而只显示一些在设计模式下对您有帮助的演示数据。这个对另一个问题的回答详细说明了如何在设计时使用单独的服务或单独的 ViewModel:(使用 MVVMLight 的关键是使用 ViewModelBase.IsInDesignModeViewModelBase.IsInDesignModeStatic 属性。)