无法从完整的.NET项目中引用.NET Core类库。

6
我正在尝试使用类库将我的.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: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

你在 ClassLibrary1 的 project.json 中将目标设置为 netstandard1.2 了吗? - enzian
这个问题和这个链接中的问题一样吗?https://dev59.com/eloT5IYBdhLWcg3w0CC_?rq=1 - kurakura88
@enzian 是的,我尝试过但没有成功。 - gretro
@kurakura88 谢谢,但我已经研究过了,这不是重复的问题。我不是试图将完整的.NET程序集引用到Core项目中,而是将编译为4.5.2的普通程序集引用到控制台应用程序中。 - gretro
1个回答

0

我在PCL中遇到了与Microsoft.NETCore 5.0.1类似的问题。

它甚至找不到System.Object。

我尝试降级到5.0.0,这对我解决了问题。


你对潜在问题的分析是什么?你的建议如何解决这个问题? - oɔɯǝɹ
我使用相同的库,而NuGet上当前版本给了我大量相似的错误(无法找到XYZ)。它显然是有问题的。降级解决了这个问题。 - Volker Schmidt
1
我不知道是什么原因导致了这些错误(它们对我来说毫无意义),只知道我是如何解决它们的。难道我不应该分享一下吗?我完全不知道你对我有什么期望。编辑:当然,你可以删除你所写的内容。 - Volker Schmidt
1
如果您要分享经验(或:轶事数据),最好在问题的评论中这样做。如果您确实有一个适用于所有遇到此问题的用户的有效解决方案,并附上错误和解决方法的说明,则将其指定为答案是有效的。 - oɔɯǝɹ
7
好的,仅供参考:除了“这是一个错误”之外,您还期望有哪些解释?我调试微软库吗?因为我的分辨率肯定存在。 - Volker Schmidt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接