【发布时间】:2016-11-18 03:54:09
【问题描述】:
我正在尝试使用类库将我的 .NET Core 项目拆分为单独的关注点。我想要一个(或多个)类库和一个宿主项目。类库将定义 MVC 控制器和业务逻辑,而宿主项目将负责提供工作宿主。不幸的是,项目引用拒绝工作。
让我告诉你我为解决这个问题所采取的步骤。
- 在 Visual Studio 2015 Update 3 中创建空解决方案
- 创建一个名为 ClassLibrary1 的类型为 Class Library (.NET Core) 的项目
- 进入 project.json 并对其进行修改,使其如下所示。
- 创建一个名为 ConsoleApplication1 的类型为 Console Application(不是 .NET Core)的项目
- 右键单击 ConsoleApplication1 下的 References 并将 ClassLibrary1 添加为 项目引用。
- 引用存在于 ClassLibrary1 中的类型。
- 构建解决方案。
这将导致 ConsoleApplication1 项目中的构建失败,代码错误 CS0246:The type or namespace name 'ClassLibrary1' could not be found (are you missing a using directive or an assembly reference?)。如果我没有将引用添加为 项目引用,而是浏览到 bin 文件夹并直接引用 dll,那么一切都会毫无问题地构建。但是,这不是一个解决方案,因为构建目标可能会改变,所以路径也会改变。
project.json的代码:
{
"version": "1.0.0-*",
"dependencies": {
},
"frameworks": {
"net452": {
}
}
}
这是 Visual Studio 的错误,还是我做错了什么?我试过用netstandard1.2,net452,结果还是一样。
编辑 我在 .NET CLI Github 存储库中创建了一个问题。这是链接:https://github.com/dotnet/cli/issues/3926。
【问题讨论】:
-
您是否让 ClassLibrary1 在其 project.json 中以 netstandard1.2 为目标?
-
这个stackoverflow.com/questions/38148128/…也有同样的问题?
-
@enzian 是的,我试过没有成功。
-
@kurakura88 谢谢,但我已经调查过了,这不是重复的。我不是想将完整的 .NET 程序集引用到 Core 项目中,而是将一个普通的旧程序集引用到控制台应用程序中,它可以编译为 4.5.2。
标签: c# .net visual-studio .net-core