【问题标题】:Reference to type 'IListSource' claims it is defined in 'System', but it could not be found对“IListSource”类型的引用声称它在“系统”中定义,但找不到
【发布时间】:2017-02-27 03:59:59
【问题描述】:

我正在尝试添加我的包,其中目标框架是 .Net Framework 4.5 已经添加 Microsoft.NETCore.Portable.Compatibility": "1.0.1" 以修复 mscorlib error

下面是project.json

"dependencies": {
    "Microsoft.ApplicationInsights.AspNetCore": "1.0.0",
    "Microsoft.AspNetCore.Mvc": "1.0.1",
    "Microsoft.AspNetCore.Routing": "1.0.1",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
    "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0",
    "Microsoft.Extensions.Logging": "1.0.0",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.Extensions.Logging.Debug": "1.0.0",
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
    "Swashbuckle": "6.0.0-beta902",
    "Microsoft.AspNetCore.Cors": "1.1.0",
    "Microsoft.NETCore.Portable.Compatibility": "1.0.1",
    "Microsoft.EntityFrameworkCore": "1.0.0",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0"
},

"tools": {
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
},

"frameworks": {
    "netcoreapp1.0": {
        "dependencies": {
            "Microsoft.NETCore.App": {
                "version": "1.0.1",
                "type": "platform"
            },
            "Clemittance.Database.ReadModel": "1.9.5"
        },
        "imports": [
            "dotnet5.6",
            "portable-net45+win8",
            "net45",
            "dnxcore50"
        ]
    }
},

Clemittance.Database.ReadModel 是我的包裹

错误

【问题讨论】:

  • 它确实在System.dll 但在System.ComponentModel 命名空间下。在文件中添加using System.ComponentModel;
  • @Nkosi 它已经添加但仍然是同样的错误
  • 根据 packagesearch,它位于 System.ComponentModel.TypeConverter 包中,packagesearch.azurewebsites.net/?q=IListSource。同时删除net45,你不应该这样滥用它。
  • @Tseng 当我删除net45 时,输出显示Package Clemittance.Database.ReadModel 1.9.5 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package Clemittance.Database.ReadModel 1.9.5 supports: net45 (.NETFramework,Version=v4.5)
  • 嗯,.NET Framework 4.5 只是 Windows,它是旧的单体框架/运行时。您可能能够在 linux 上使用 mono 运行它(您仍然以 net451 为目标),但这取决于所使用的 API,因为并非所有 API 都直接以 mono 移植(即加密不同,某些命名空间不同,WCF、WPF 等。 (有关支持/移植到 Mono 的内容,请参阅 mono-project.com/docs/about-mono/compatibility

标签: c# asp.net-core .net-framework-version


【解决方案1】:

首先,从您的导入部分删除net45,您不应该以这种方式滥用它。此处仅允许您使用与 .NET Core 兼容的框架,例如 portable-net45+win8,它们可以与 .NET Core 一起使用,因为它们共享相同的 API 表面。

永远不要这样使用imports。它只是强制 nuget 恢复某些尚未针对 netstandard1.x 的 nuget 包,例如某些可移植类库 (PCL)。

滥用它来做其他事情,是行不通的。您无法使 .NET Framework 4.x 库自动与 .NET Core 一起使用。

IListSource 似乎是 .NET Core 的一部分,但不是“核心”.NET Core 包的一部分。然而 packagesearch 说它在 SystemSystem.ComponentModel.TypeConverter 包中(参见 http://packagesearch.azurewebsites.net/?q=IListSource)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 2018-11-23
    • 2018-09-12
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多