我有一个带有
的asp核心网络应用程序 "frameworks": {
"net452": {}
},
我还有类库(.NET Core)。
{
"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
答案 0 :(得分:0)
编辑:根据问题的更改进行了更新。
所以我不会继续填写评论部分,你的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 Framework以匹配您正在使用的NETSTandard
(根据以前linked docs),或者你需要像这样交叉编译类库:
{
"version": "1.0.0-*",
"frameworks": {
"netstandard1.5": {
"dependencies": {
"NETStandard.Library": "1.6.0"
}
},
"net452": { }
}
}
使用第一个建议,您的应用程序为您的类库生成一个程序集,使用第二种方法,您的类库将被编译两次(一个用于netstandard1.5
,一个用于net452
)。当您的网络应用尝试解析类库时,它意识到它无法使用netstandard1.5
(定位net462
),因此会回退到net452
程序集。但请注意,使用第二个选项通常表示您的项目结构不正确,只有在您知道自己在做什么以及为什么(在我看来)时才应该使用。
显示的NETStandard.Library
依赖关系是必需的NuGet bundle ,它可以提取必要的CoreFX包。如果您收到“无法找到Microsoft.CSharp”这样的错误,通常是因为您没有下拉默认包。您只能下拉所需的CoreFX软件包,例如System.Collections
,但这是一种更高级的技术。
希望这有助于清理事情?
答案 1 :(得分:-1)
将net45
替换为您已安装的net461
或"version": "1.0.0-*"
。 "version": "1.0.1"
更新DateTime
。保存更改。你已经完成了。
注意:您无法使用.Net核心类库定义模型。其他一切都还可以!