【问题标题】:vNext adding a reference from class library to a web applicationvNext 将类库中的引用添加到 Web 应用程序
【发布时间】:2016-02-24 02:41:59
【问题描述】:

也许是个愚蠢的问题,但是如何将类库中的引用添加到 Web 应用程序?

  1. 我已安装 ASP Net 5 RC1 更新并准备好使用。
  2. 使用 AspNet 5 模板创建了一个新网站

  3. 创建了一个新的类库

  4. 类库项目中的project.json文件如下所示

我遇到的问题是,我尝试通过依赖项部分添加对 Web 项目的引用,但出现错误

“项目Middleware.Tests中的依赖Middleware 1.0.0不支持框架.NETFramework,Version=v4.5.1.Middleware.Test”

从消息中可以明显看出为什么这会失败,但是我很难理解如何添加这个引用?

我尝试添加不同的框架版本,例如 net50,但仍然没有成功。

{
  "version": "1.0.0-*",
  "description": "Middleware.Tests Class Library",
  "authors": [ "Foo Man" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",

  "frameworks": {
    "net451": {
      "dependencies": {
        "Middleware": ""
      }
    }
  }
}

按要求编辑 web project.json 文件:

{
  "commands": {    
    "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:5000",
  },
  "compilationOptions": {
    "emitEntryPoint": true
  },
  "dependencies": {
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
    "Microsoft.AspNet.Http.Abstractions": "1.0.0-rc1-final",
    "Microsoft.AspNet.Hosting": "1.0.0-rc1-final",
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-rc1-final",
    "Microsoft.AspNet.Owin": "1.0.0-rc1-final"
  },
  "exclude": [
    "wwwroot",
    "node_modules"
  ],
  "frameworks": {
    "dnx451": {
      "dependencies": {
      }
    }
  },
  "publishExclude": [
    "**.user",
    "**.vspscc"
  ],
  "version": "1.0.0-*"
}

【问题讨论】:

  • 尝试将net451改为dnx451
  • 还需要查看 web project.json 以提供更多帮助
  • @JoeAudette 对其进行了排序!请张贴作为答案,我可以关闭它。

标签: c# asp.net-core


【解决方案1】:

单元测试类库被视为“应用程序”,与 Web 应用程序和控制台应用程序相同,应用程序应使用“dnx”名称。

net451 对于普通类库是正确的,但对于单元测试项目,您应该将其更改为 dnx451

请注意,此信息仅与 RC1 相关,在下一个版本中将对目标名称进行更改,以便更轻松地定位多个框架。

【讨论】:

  • 您应该澄清单元测试库被视为“应用程序”(与控制台或 asp.net 核心相同),应用程序应使用 dnx 绰号(或 dnxcore 用于 .NET核)。 net 绰号仅用于类库/包(dotnet 用于 .NET Core)
  • 是的,我不是 100% 确定他的类库是一个单元测试类库,除了他命名它。他在问题中没有说这是一个单元测试项目,他的 project.json 没有显示对 xunit 的引用。但我怀疑它是用于单元测试的,这就是我所说的“在某些情况下”。我知道在我自己的项目中,使用 net451 的类库与使用 dnx451 的网络应用程序配合得很好。
  • 我创建了一个标准类库并在之后添加了 xunit 引用。我想对于这个问题,我没有把全部细节都放在相关信息上。但是是的,这将是一个托管我的单元测试并添加 xunit 和运行程序包的项目。
  • @JoeAudette:对于可能不会阅读 cmets 的未来读者来说,将此信息添加到答案中可能会很有用
猜你喜欢
  • 2016-03-16
  • 2015-12-31
  • 2013-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-23
相关资源
最近更新 更多