无法在 Sitecore 8.1 项目中加载文件或程序集 Microsoft.Extensions.DependencyInjection.Abstractions

Could not load file or assembly Microsoft.Extensions.DependencyInjection.Abstractions in Sitecore 8.1 Project

无法加载文件或程序集 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' 或其依赖项之一。系统找不到指定的文件。

我尝试清理并重建解决方案并删除了 bin 和 obj,但我仍然遇到同样的错误。我正在使用 sitecore 8.1。

堆栈跟踪:

    [FileNotFoundException: Could not load file or assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' or one of its dependencies. The system cannot find the file specified.]
    Sitecore.DependencyInjection.<>c__14`1.<GetRequiredResetableService>b__14_0() +0
    Sitecore.DependencyInjection.LazyResetable`1.get_Value() +148
    Sitecore.Configuration.Factory.GetConfigNode(String xpath) +72
    Sitecore.Resources.Media.UploadWatcher.InitializeIgnoreList() +156
    Sitecore.Resources.Media.UploadWatcher..cctor() +85

    [TypeInitializationException: The type initializer for 'Sitecore.Resources.Media.UploadWatcher' threw an exception.]
    Sitecore.Resources.Media.UploadWatcher..ctor() +0

这可能是由以下原因之一引起的:

  1. 您通过 Nuget 包将 Sitecore.Kernel 添加到您的项目中,并且您正在引用更高版本 (8.2) 并在构建时将其部署到 bin 文件夹并发布,您需要检查您的 nuget 包中的 Sitecore.Kernel 版本是否正确
  2. 您正在从您的项目(不包括 Sitecore 默认配置)覆盖 web.config 并将其推送到根文件夹,您只需要确保正确的 Sitecore web.config 在您的根文件夹中。
  3. 您在 NuGet 包中引用了更高版本的“Microsoft.Extensions.DependencyInjection.Abstractions”包,请确保您引用的是版本号“1.0。 0”,因为这是 sitecore 使用的版本。

希望对您有所帮助