问题在ASP.NET 5(核心)

时间:2015-08-04 08:45:37

标签: asp.net .net asp.net-core

嗨首先我知道之前已经提到了类似的问题,但现在它们已经过时了,我使用的是Visual Studio 2015 rtm和ASP.NET 5 beta 6。

我正在尝试将正常(即非vnext)类库项目的引用添加到我的vnext Web应用程序中。如果我按照以下步骤操作:

  1. 创建新的网络应用项目

  2. 从project.json

  3. 中删除“dnxcore50”框架
  4. 为普通类库添加新项目

  5. 手动将类库项目移动到/ src文件夹中(否则我收到错误“依赖项MyClassLibrary1> = 1.0.0- *无法解析。”)

  6. 添加对此类库的引用

  7. 现在它构建正常,但如果我尝试添加“使用MyClassLibrary1”,它表示当前上下文中不存在MyClassLibrary1。

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

    这是我的project.json文件:

    {
      "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文件:

    {
      "projects": [
        "src",
        "test",
        "wrap"
      ],
      "sdk": {
        "version": "1.0.0-beta6"
      }
    }
    

6 个答案:

答案 0 :(得分:23)

这是我使用beta6的方式(更新:它仍然对RC1 UPDATE 1 有效)。

  1. 删除frameworks =>来自你的project.json的dnxcore(你无论如何都可以使用完整的.net类库来定位它)
  2. 在目标项目中右键单击References =>添加参考
  3. 导航并选择要添加的参考dll。
  4. 这会在 project.json 文件中添加引用条目。 在幕后,将dll复制到解决方案中的/ lib目录和" 包装器项目"只有一个project.json文件在/ wrap文件夹中创建。这里记录了包装器项目(尽管不够好):https://github.com/aspnet/Home/wiki/Project.json-file#bin-syntax-wrapping-a-dll

    那就是它!我刚刚测试了这个场景。希望这会有所帮助。

答案 1 :(得分:15)

如果其他人正在努力解决这个特定错误,关键是在添加引用时通过“浏览”添加引用到实际文件,而不是使用“项目”选项卡。

这似乎不存储路径,但按正常情况添加对project.json的引用。在撰写本文时,显然是一个错误(beta7)。

答案 2 :(得分:2)

以下是我在ASPT.NET 5 RC 1 Update 1中的表现:

  1. 添加项目参考
  2. project.json节点内打开"frameworks":,删除"dnxcore50": { }行(JSON不允许评论)。保存json文件时,应立即删除DNX Core 5引用。

  3. 构建项目。它应该成功构建。

  4. 放回"dnxcore50": { }。它没有带回DNX 5 Core。

答案 3 :(得分:1)

要在版本大于4.5.1的版本中添加正常的.NET项目,只需删除dnxcore并将dnx451重命名为dnx461

答案 4 :(得分:1)

这些答案确实帮助我解决了这个问题。在我的情况下,在解决方案中清理东西"包装"文件夹解决了构建错误。我已经重命名了一些类库,旧的库仍在那里。删除旧项目并更新现有项目中的project.json文件就可以了。确保project.json文件中的依赖项尊重正确的项目。

以下是一个例子:

  "dependencies": {
    "DomainRepository": "1.0.0-*",
    "Domain": "1.0.0-*",
    "DomainContract": "1.0.0-*"
  }

答案 5 :(得分:0)

这是一个当前开放的错误。这是链接,因此您可以看到它何时关闭: https://github.com/aspnet/Tooling/issues/245