【发布时间】:2016-01-08 14:02:31
【问题描述】:
在简单的情况下,我创建了一个新的解决方案,然后将一个新的 ASP.NET 5 Web 应用和一个类库(包)添加到该解决方案中。
每个项目都有默认的框架引用:
网络应用程序:dnxcore50 和 dnx451
类库(包):net451、dotnet5.4
如果我尝试将 Web 应用程序的引用添加到类库,则会出现问题。它添加成功,但是当我从库中创建一个类的新实例时,从网络应用程序中找不到任何东西。我相信这是因为类库必须支持项目中的框架。
我真的需要将所有 4 个框架都添加到我的类库吗?
"frameworks": {
"dnxcore50": { },
"dnx451": { },
"net451": { },
"dotnet5.4": {
"dependencies": {
"Microsoft.CSharp": "4.0.1-beta-23516",
"System.Collections": "4.0.11-beta-23516",
"System.Linq": "4.0.1-beta-23516",
"System.Runtime": "4.0.21-beta-23516",
"System.Threading": "4.0.11-beta-23516"
}
}
}
难道我不能只在类库中使用 dnxcore50 和 dnx451 并且仍然使用 System 命名空间吗?删除 net451 和 dotnet5.4 后,我会收到一堆关于 System 命名空间的错误。
【问题讨论】:
-
如果您提供一个完整的示例,其中至少包含 一些 示例错误消息而不是“一堆错误”,这将非常有帮助。请注意,这些并不是真正的“框架引用”,而是“框架目标”。
-
现在我一直在更改我的类库以匹配 Web 应用程序,即将 dotnet5.4 更改为 dnxcore50。 net451 似乎工作正常,所以我保持原样。您不想添加所有 4 个,因为 dnx451 与 net451 即桌面框架相同,而 dotnet5.4 与 dnxcore50 即 coreclr 相同
-
@JonSkeet 抱歉,我的错误是指我的 webapp 看不到类库。这意味着我无法向类库添加 using 语句。
-
@JoeAudette 似乎唯一可行的解决方案是将 dotnet5.4 更改为 dnxcore50 并保持 net451 不变。一旦我删除 net451 并用 dnx451 替换它,我就无法访问 System 命名空间,这完全没有意义,因为 dnx451 在 Web 应用程序中完全正常工作,我可以访问 System 命名空间。
标签: c# asp.net asp.net-core class-library .net-framework-version