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

时间:2015-02-03 01:12:50

标签: asp.net asp.net-core

我使用的是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-*"
        }
    }
},

3 个答案:

答案 0 :(得分:2)

由于“组件”库是为.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 1Question 2

答案 1 :(得分:1)

将库添加到frameworkDependencies而不是dependencies

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

答案 2 :(得分:0)

对我来说,以上都没有工作,经过花了很多时间调查......我终于找到了解决方案!

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

Package Sources in VS2015