【问题标题】:Legacy assembly reference error in asp.net-vnextasp.net-vnext 中的旧程序集引用错误
【发布时间】:2015-05-04 20:32:46
【问题描述】:

我正在使用 VS2015 CTP5,并且我正在引用一个用 4.5.1 编译的遗留类库。在编译期间,我收到以下警告:

无法解析主要引用“D:\components.dll”,因为它是针对“.NETFramework,Version=v4.5.1”框架构建的。这是比当前目标框架“.NETFramework,Version=v4.5”更高的版本。

这是我添加引用后的project.json

"frameworks": {
    "aspnet50": {
        "dependencies": {
            "components": "1.0.0-*"
        }
    }
},

【问题讨论】:

  • 您的 vnext 项目类型是什么?它清楚地表明你当前的应用程序目标是 4.5,你的类库是 4.5.1,如果你有 ctp5 的 vnext 项目,那么它应该是 4.6

标签: asp.net asp.net-core


【解决方案1】:

由于“组件”库是为 .net 45 构建的,并且假设您在旧版本的 Visual Studio 中构建该库,它在 aspnetcore5 中无法使用,但可以在 aspnet5 上使用(这些是 .net 的新版本)。如果您想摆脱错误并仍然使用组件库,则需要从 project.json 文件中删除 aspnetcore5 json 节点,但您构建的项目将与 aspnetcore5 不兼容。因此,您的 frameworks 部分的 project.json 文件应如下所示。

"frameworks": {
    "aspnet50": {

        "frameworkAssemblies": {
            "System": "4.0.0.0"
        },
        "dependencies": {


        }
    },      
    "net45": {
        "dependencies": {  "components": "1.0.0"},
        "frameworkAssemblies": { }

    }

}

你的参考应该是这样的,我在组件库旁边有警告,因为我的代码中没有。

您可以查看此问题以获取更多信息。

Question 1, Question 2

【讨论】:

    【解决方案2】:

    将库添加到frameworkDependencies 而不是dependencies

    "net45": {
        "frameworkAssemblies": {
            "components": "1.0.0"
        },
        "dependencies": {
            // NuGet packages go here
        }
    

    【讨论】:

    • Victor,我认为您需要将“components”:“1.0.0”移动到依赖项节点,如果我没记错的话,frameworkAssemblies 仅用于 .NET 引用,依赖项适用于任何 nuget 或项目参考。
    【解决方案3】:

    对我来说,上述方法都不起作用,在花了很多时间调查之后......我终于找到了解决方案!

    我必须在NuGet Package Explorer 中为我的 dll 创建一个新包,保存并将其导出到本地文件夹(使用 File->Save 和 File->Export 命令)。然后向 Visual Studio 声明我的本地存储库(文件夹),转到 Tools->Options->NuGet Package Manager->Package Sources 并为我的本地存储库插入一条记录 - 见下图。

    【讨论】:

      猜你喜欢
      • 2015-12-22
      • 2014-09-24
      • 1970-01-01
      • 2015-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-24
      • 2017-05-30
      相关资源
      最近更新 更多