【问题标题】:UWP using seperate project for Repository and Services but cant add reference to the applicationUWP 对存储库和服务使用单独的项目,但无法添加对应用程序的引用
【发布时间】:2016-03-08 23:43:44
【问题描述】:

基本上是上面的问题,我将如何添加对两个项目 Repository 和 Service 的引用,这两个项目都是针对 DNXcore50 的类库。他们还引用了 .net framework 4.5.1。我让库相互交谈,并且可以从基于 Web 的 api/应用程序调用它们,但是当我尝试将服务层引用添加到 UWP 应用程序时,我收到一条错误消息,提示“无法引用服务层”。

这里是 Repository 和 Service 层的 project.json 文件

存储库:

{
  "version": "1.0.0-*",
  "description": "Testing.Data Class Library",
  "authors": [ "" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",

  "dependencies": {
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
    "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.FileProviderExtensions": "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final",
    "EntityFramework.MicrosoftSqlServer.Design": "7.0.0-rc1-final",
    "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
    "EntityFramework.Commands": "7.0.0-rc1-final"
  },
  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel",
    "ef": "EntityFramework.Commands"
  },

  "frameworks": {
    "net451": { },
    "dnxcore50": { }
  }
}

和服务层:

{
  "version": "1.0.0-*",
  "compilationOptions": {
    "emitEntryPoint": true
  },

  "dependencies": {
    "AutoMapper": "4.2.0",
    "Testing.Data": "1.0.0-*",
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",

    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final"

  },

  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel"
  },

  "frameworks": {
    "dnx451": { },
    "dnxcore50": { }
  },

  "exclude": [
    "wwwroot",
    "node_modules"
  ],
  "publishExclude": [
    "**.user",
    "**.vspscc"
  ]
}

我已经尝试将这两个项目设置为输出一个 dll 并将它们复制到应用程序的目录中,但 Visual Studio 仍然拒绝接收它。

【问题讨论】:

  • 为什么你的服务层被声明为应用程序?
  • 我想我改变了它,因为我无法让服务层引用存储库类库。让我看看我可以在这里真正快速地使用什么。这也是我能够在服务器上托管服务层

标签: c# asp.net-core win-universal-app


【解决方案1】:

您的服务层目标框架名字对象 (TFM) 似乎有误。 dnx451dnxcore50 用于应用程序(即 ASP.NET Web 项目或单元测试项目)。

对于类库,您必须使用 net451dotnet5.4(目前,将使用新的 RC 再次更改)。

请参阅this announcement 了解 ASP.NET 5/Core RC1。

【讨论】:

  • 我想补充一点,即使不是这样,所需的依赖项也与 UWP 不兼容。除外:“EntityFramework.MicrosoftSqlServer.Design”:“7.0.0-rc1-final”、“EntityFramework.MicrosoftSqlServer”:“7.0.0-rc1-final”、“EntityFramework.Commands”:“7.0.0-rc1-final” "
  • 您是说不能将实体框架与 UWP 一起使用。
  • 好吧,根据网络标准平台 (github.com/dotnet/corefx/blob/master/Documentation/architecture/…),UWP 是 netstandard 1.3(这等于 dotnet5.4,因为 dotnet 名字总是 1 关闭。所以 dotnet5.1 = netstandard 1.0)。因此为 UWP (dotnet5.4) 创建的包也应该能够在 ASP.NET Core 中使用。从同一链接中,您还可以看到 UAP 的目标名称:uap10 和/或netcore50。请注意,lnked dumentation 目前指的是当前未发布的 RC2 版本,而 netstandard` 名称在 dnx/rc1 中不可用
  • 在 RC1 中它们仍然被命名为 netxxxdotnetx.x
猜你喜欢
  • 2019-12-04
  • 2018-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-18
  • 2016-09-14
  • 1970-01-01
相关资源
最近更新 更多