我正在尝试使用类库将我的.NET Core项目拆分为独立的关注点。我想要一个(或多个)类库和一个主机项目。类库将定义MVC控制器和业务逻辑,而主机项目将负责提供一个可工作的主机。不幸的是,项目引用无法正常工作。
让我给你介绍一下我遇到这个问题的步骤。
1. 在Visual Studio 2015 Update 3中创建一个空解决方案。 2. 创建一个类型为“Class Library (.NET Core)”的项目,命名为ClassLibrary1。 3. 打开project.json文件并修改为以下内容。 4. 创建一个类型为“Console Application”(非.NET Core)的项目,命名为ConsoleApplication1。 5. 在ConsoleApplication1下的References上右键单击,并将ClassLibrary1添加为“Project reference”。 6. 引用ClassLibrary1中存在的类型。 7. 构建解决方案。
这将导致在ConsoleApplication1项目中出现构建失败,错误代码为CS0246:
这是一个Visual Studio的bug,还是我做错了什么?我尝试使用netstandard1.2、net452,但结果仍然相同。
编辑: 我在.NET CLI的Github存储库中创建了一个问题。这是链接: https://github.com/dotnet/cli/issues/3926。
让我给你介绍一下我遇到这个问题的步骤。
1. 在Visual Studio 2015 Update 3中创建一个空解决方案。 2. 创建一个类型为“Class Library (.NET Core)”的项目,命名为ClassLibrary1。 3. 打开project.json文件并修改为以下内容。 4. 创建一个类型为“Console Application”(非.NET Core)的项目,命名为ConsoleApplication1。 5. 在ConsoleApplication1下的References上右键单击,并将ClassLibrary1添加为“Project reference”。 6. 引用ClassLibrary1中存在的类型。 7. 构建解决方案。
这将导致在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的bug,还是我做错了什么?我尝试使用netstandard1.2、net452,但结果仍然相同。
编辑: 我在.NET CLI的Github存储库中创建了一个问题。这是链接: https://github.com/dotnet/cli/issues/3926。