首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在ASP.NET 5中添加对类库项目的引用问题(核心)

在ASP.NET 5中添加对类库项目的引用问题(核心)
EN

Stack Overflow用户
提问于 2015-08-04 16:45:37
回答 6查看 21.1K关注 0票数 17

嗨,首先我知道之前也有人问过类似的问题,但现在已经过时了,我使用的是Visual Studio2015RTM和ASP.NET 5Beta 6。

我正在尝试向我的vnext web应用程序添加一个对普通(即不是vnext)类库项目的引用。如果我遵循以下步骤:

could to >创建一个新的web应用程序项目并从其中移除"dnxcore50“框架为一个普通类创建一个新项目并将类库项目移到/src文件夹中(否则会收到错误消息"The dependency MyClassLibrary1 >= 1.0.0-* get

a reference to this class library

现在它构建正常,但如果我尝试添加"using MyClassLibrary1“,它会显示MyClassLibrary1在当前上下文中不存在。

如果我随后将类库更改为目标.NET 4客户端配置文件(默认情况下是4.6),它可以正常工作,但是.NET 4 full或4.5不能工作。我需要它是4.5或更高,因为我需要引用需要它的各种包。理想情况下,一切都应该只针对4.6。

这是我的project.json文件:

代码语言:javascript
复制
{
  "webroot": "wwwroot",
  "userSecretsId": "aspnet5-WebApplication2-6767111e-0eba-42a4-9d68-4b6c20767518",
  "version": "1.0.0-*",

  "dependencies": {
    "EntityFramework.SqlServer": "7.0.0-beta6",
    "EntityFramework.Commands": "7.0.0-beta6",
    "Microsoft.AspNet.Mvc": "6.0.0-beta6",
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta6",
    "Microsoft.AspNet.Authentication.Cookies": "1.0.0-beta6",
    "Microsoft.AspNet.Authentication.Facebook": "1.0.0-beta6",
    "Microsoft.AspNet.Authentication.Google": "1.0.0-beta6",
    "Microsoft.AspNet.Authentication.MicrosoftAccount": "1.0.0-beta6",
    "Microsoft.AspNet.Authentication.Twitter": "1.0.0-beta6",
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta6",
    "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta6",
    "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta6",
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta6",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta6",
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta6",
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-beta6",
    "Microsoft.Framework.Configuration.Abstractions": "1.0.0-beta6",
    "Microsoft.Framework.Configuration.Json": "1.0.0-beta6",
    "Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta6",
    "Microsoft.Framework.Logging": "1.0.0-beta6",
    "Microsoft.Framework.Logging.Console": "1.0.0-beta6",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta6"
  },

  "commands": {
    "web": "Microsoft.AspNet.Hosting --config hosting.ini",
    "ef": "EntityFramework.Commands"
  },

  "frameworks": {
    "dnx451": {
      "dependencies": {
        "MyClassLibrary1": "1.0.0-*"
      }

    }
  },

  "exclude": [
    "wwwroot",
    "node_modules",
    "bower_components"
  ],
  "publishExclude": [
    "node_modules",
    "bower_components",
    "**.xproj",
    "**.user",
    "**.vspscc"
  ],
  "scripts": {
    "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ]
  }
}

和我的global.json文件:

代码语言:javascript
复制
{
  "projects": [
    "src",
    "test",
    "wrap"
  ],
  "sdk": {
    "version": "1.0.0-beta6"
  }
}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-08-09 19:32:10

这就是我使用beta6 ( UPDATE :它对于RC1 UPDATE 1仍然有效)的方法。

  1. Remove frameworks => dnxcore从project.json中删除框架(无论如何都不能使用完整的.net类库将其作为目标)
  2. 在目标项目中右键单击References => Add Reference
  3. Navigate并选择要添加的引用dll。

这将在您的project.json文件中添加一个引用条目。在后台,dll被复制到解决方案中的/lib目录,并且在/wrap文件夹中创建了一个只包含project.json文件的“包装器项目”。包装器项目记录在这里(尽管还不够好):https://github.com/aspnet/Home/wiki/Project.json-file#bin-syntax-wrapping-a-dll

就这样!我刚刚测试了这个场景。希望这能有所帮助。

票数 23
EN

Stack Overflow用户

发布于 2015-09-04 21:30:43

如果其他任何人正在这个特定的错误中苦苦挣扎,关键是在添加引用时通过“浏览”到实际的文件来添加引用,而不是使用"project“选项卡。

这看起来并没有存储路径,但是按照正常情况添加了对project.json的引用。在写这篇文章的时候,显然是一个bug (beta7)。

票数 15
EN

Stack Overflow用户

发布于 2016-01-18 14:22:48

下面是我在ASPT.NET 5 RC 1更新1中是如何做到的:

  1. 添加项目引用
  2. Open project.json,在"frameworks":节点内,删除"dnxcore50": { }行(JSON不允许注释)。当您保存json文件时,应该删除immediately.
  3. Build项目的DNX Core 5引用。它应该会重新构建successfully.
  4. Put "dnxcore50": { }。它不会带回DNX5内核。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31804623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档