. net版本中的asp.net core
本文关键字:net core asp 版本 | 更新日期: 2023-09-27 18:09:19
我有一个asp核心web应用程序
"frameworks": {
"net452": {}
},
,我也有类库(。网络核心)。
{
"version": "1.0.0-*",
"frameworks": {
"netstandard1.5": {
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"net452": {}
}
}
}
问题是,我如何添加web应用程序项目引用类库?我应该导入一些。net框架还是使用.net
标准?
现在我有一个错误消息,当我试图添加引用类库项目。
不支持以下项目作为参考:"webprojectname"的目标框架不兼容当前项目中的目标"classlibraryprojectname"
"classlibraryprojectname": .NETCoreApp, Version=v1.0 "webprojectname":.NETFramework, Version = v4.5.2
编辑:根据问题的变化进行更新。
所以我不继续填写评论部分,你的project.json
应该是这样的:
Web App (你还会有其他没有在这里显示的依赖项):
"dependencies": {
"YourClassLibrary": "1.0.0-*"
},
"frameworks": {
"net452": { }
}
类库:
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"netstandard1.2": { }
}
}
注意:如果你的类库依赖于高于netstandard1.2
的东西,那么你要么必须在你的web应用程序中增加。net框架,以匹配你正在使用的NETSTandard
(按照以前链接的文档),或者你需要交叉编译类库,像这样:
{
"version": "1.0.0-*",
"frameworks": {
"netstandard1.5": {
"dependencies": {
"NETStandard.Library": "1.6.0"
}
},
"net452": { }
}
}
使用第一个建议,您的应用程序为您的类库生成一个程序集,使用第二个方法,您的类库将被编译两次(一次用于netstandard1.5
,一次用于net452
)。当你的web应用程序试图解决类库,它意识到它不能使用netstandard1.5
(目标net462
),所以回落到net452
程序集。然而,请注意,使用第二种选择通常表明你的项目结构不正确,只有在你知道你在做什么以及为什么(在我看来)的情况下才应该使用。
显示的NETStandard.Library
依赖项是一个重要的NuGet 包,它拉下必要的CoreFX包。如果出现"无法找到Microsoft。"这通常是因为你没有拉下默认包。相反,您可以只拉下您想要的CoreFX包,例如System.Collections
,但这是一种更高级的技术。
希望这有助于澄清问题?