asp.net-vnext 中的遗留程序集引用错误

Legacy assembly reference error in asp.net-vnext

我正在使用 VS2015 CTP5 并且我正在引用使用 4.5.1 编译的遗留 class 库。在编译期间,我收到此警告:

The primary reference "D:\components.dll" could not be resolved because it was built against the ".NETFramework,Version=v4.5.1" framework. This is a higher version than the currently targeted framework ".NETFramework,Version=v4.5".

这是我添加参考后的project.json

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

将库添加到 frameworkDependencies 而不是 dependencies

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

由于 "component" 库是为 .net 45 构建的,并且假设您在 visual studio 的旧版本中构建该库,它不会在 aspnetcore5 中工作,但会在 aspnet5 上工作(这些是 .net 的新版本)。如果您想消除错误并仍然使用您的组件库,您需要从 project.json 文件中删除 aspnetcore5 json 节点,但您构建的项目将与 aspnetcore5 不兼容。因此,框架部分的 project.json 文件应如下所示。

"frameworks": {
    "aspnet50": {

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


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

    }

}

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

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

Question 1,

对我来说,上述 none 行得通,在花了很多时间调查之后...我终于找到了解决方案!

我必须在 NuGet Package Explorer 中为我的 dll 创建一个新包,将其保存并导出到本地文件夹(使用文件->保存和文件->导出命令)。然后将我的本地存储库(文件夹)声明为 Visual Studio,转到工具->选项->NuGet 包管理器->包源并为我的本地存储库插入一条记录 - 见下图。