為什麼Visual Studio告訴我需要引用System.Private.CoreLib?

asp.net-core asp.net-core-mvc entity-framework-core visual-studio

我是第一次嘗試使用EF Core並編寫了一個非常簡單的MVC應用程序來讓我的腳濕透。我正在使用一種方法來播種UnicornStore項目中的數據庫,在該項目中 ,他們在Startup.cs編寫一些代碼來遷移數據庫,然後運行種子方法。

在調用種子方法之前,他們運行此DbContext擴展方法來檢查是否已應用所有遷移:

using System;
using System.Linq;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;

namespace UnicornStore.Models
{
    public static class DbContextExtensions
    {
        public static bool AllMigrationsApplied(this DbContext context)
        {
            var applied = context.GetService<IHistoryRepository>()
                .GetAppliedMigrations()
                .Select(m => m.MigrationId);

            var total = context.GetService<IMigrationsAssembly>()
                .Migrations
                .Select(m => m.Key);

            return !total.Except(applied).Any();
        }
    }
}

我在我的應用程序中使用了相同的方法,一切正常 - 代碼編譯,數據庫遷移和種子。但是,Visual Studio(2017 Enterprise)是紅色的下劃線:

context.GetService<IMigrationsAssembly>()
                    .Migrations
                    .Select(m => m.Key);

如果我將鼠標懸停在紅線上,它會告訴我:

應該引用模塊'System.Private.CoreLib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = foo'

誰能告訴我為什麼我收到這條消息?我實際上嘗試添加對System.Private.CoreLib的引用來查看會發生什麼,並且這會導致大量錯誤(未定義的System.Object等)。我永遠不會覺得這樣的事情沒有得到解決,以防他們以後回來咬我,所以任何解決方案(或者我可以留下這個並且忽略這個消息的確認)將不勝感激!

一般承認的答案

你安裝了R#嗎?您可能遇到過這個問題: RSRP-464676

如果是這樣,請嘗試暫停R#並查看問題是否已再次顯示。


熱門答案

我有同樣的問題。升級到最新版本的Resharper解決了這個問題。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow