project.json 解决方案参考

project.json solution project reference

我正在玩 ASP.NET 5 (vNext),我想将对 project.json 文件的引用添加到我的数据库项目中。这是:

project.json

{
    "webroot": "wwwroot",
    "version": "1.0.0-*",
    "exclude": [
        "wwwroot"
    ],
    "packExclude": [
        "**.kproj",
        "**.user",
        "**.vspscc"
    ],
    "dependencies": {
        "Microsoft.AspNet.Server.IIS": "1.0.0-beta1",
        "EntityFramework.Commands": "7.0.0-beta1",
        "EntityFramework": "7.0.0-beta1",
        "EntityFramework.SqlServer": "7.0.0-beta1",
        "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta1",
        "Microsoft.AspNet.Security.Cookies": "1.0.0-beta1",
        "DataManagement": ""    <----- THIS IS MY PROJECT WITHIN SOLUTION
    },
    "frameworks": {
        "aspnet50": { },
        "aspnetcore50": { }
    }
}

DataManagement 项目只是 Class Library,但是我尝试使用 ASP.NET 5 Class Library.两种项目类型都失败了,这就是我在 visual studio:

中看到的

项目正在正确构建并生成(当然)Datamanagement.dll,但 Web 项目找不到此库。

确切地说,下面是两个项目的目标版本:

DataManagement: KRE-CLR-x86.1.0.0-rc1-10846
Web:            KRE-CLR-x86.1.0.0-rc1-10846

您必须指定一个版本。尝试:

"DataManagement": "1.0.0-*"    

默认情况下,两个项目需要具有相同的父文件夹。

例如,此模式有效:

  • /mysolution/project1/project.json
  • /mysolution/project2/project.json

但这不会:

  • /mysolution/sub1/project1/project.json
  • /mysolution/sub2/project2/project.json

通常最简单的方法是确保两个项目具有相同的公共父文件夹。

但是,如果他们不能,您可以将 global.json 文件添加到 "solution" 文件夹并指出源的位置:

{
    "sources": ["sub1", "sub2"]
}