从VS2015运行时,VS2015在global.json中抱怨不同的SDK

时间:2015-11-10 19:17:10

标签: asp.net-core

我有一个项目,src引用另一个项目。

使用dnx web从命令提示符运行时工作正常。

但是使用CTRL-F5(web)运行会给我一个错误

  

无法确定项目的背景。如果项目按源引用其他项目,并且这些项目有一个指定不同版本SDK的global.json文件,则会发生这种情况。

使用dnx-watch运行我收到此错误

  

System.ArgumentException:目录名C:\ git \ Localization \ src \ JsonLocalization \ project.json无效。

主要解决方案global.json

{
  "projects": [
    "src",
    "test",
    "../TagHelpers/src",
    "../Mvc.JQuery.Datatables/src",
    "wrap",
    "../Localization/src"
  ],
  "sdk": {
    "version": "1.0.0-beta8"
  }
}

Main Project.json

{
    "webroot": "wwwroot",
    "userSecretsId": "aspnet5-GGZDBC5-d96c66a6-1a4e-4a9a-b8d4-11c2f88ff638",
    "version": "1.0.0-*",
    "dependencies": {
        "CsvHelper": "2.13.1",
        "EntityFramework.Commands": "7.0.0-beta8",
        "EntityFramework.SqlServer": "7.0.0-beta8",
        "Microsoft.AspNet.Authentication.Cookies": "1.0.0-beta8",
        "Microsoft.AspNet.Authentication.Facebook": "1.0.0-beta8",
        "Microsoft.AspNet.Authentication.Google": "1.0.0-beta8",
        "Microsoft.AspNet.Authentication.MicrosoftAccount": "1.0.0-beta8",
        "Microsoft.AspNet.Authentication.Twitter": "1.0.0-beta8",
        "Microsoft.AspNet.Diagnostics": "1.0.0-beta8",
        "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta8",
        "Microsoft.AspNet.Http": "1.0.0-beta8",
        "Microsoft.AspNet.Http.Features": "1.0.0-beta8",
        "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta8",
        "Microsoft.AspNet.IISPlatformHandler": "1.0.0-beta8",
        "Microsoft.AspNet.Mvc": "6.0.0-beta8",
        "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta8",
        "Microsoft.AspNet.Server.Kestrel": "1.0.0-beta8",
        "Microsoft.AspNet.Server.WebListener": "1.0.0-beta8",
        "Microsoft.AspNet.StaticFiles": "1.0.0-beta8",
        "Microsoft.AspNet.Tooling.Razor": "1.0.0-beta8",
        "Microsoft.Framework.Configuration.Abstractions": "1.0.0-beta8",
        "Microsoft.Framework.Configuration.Json": "1.0.0-beta8",
        "Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta8",
        "Microsoft.Framework.Logging": "1.0.0-beta8",
        "Microsoft.Framework.Logging.Console": "1.0.0-beta8",
        "Microsoft.Framework.Logging.Debug": "1.0.0-beta8",
        "Microsoft.Framework.SecretManager": "1.0.0-beta8",
        "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta8",
        "Newtonsoft.Json": "7.0.1-*",
        "Mvc6.JQuery.Datatables": "1.0.0-*",
        "npm": "1.4.15.2",
        "TagHelpers": "1.0.0-*",
        "Microsoft.AspNet.Localization": "1.0.0-beta8",
        "JsonLocalization": "1.0.0-*"
    },
    "commands": {
        "web": "Microsoft.AspNet.Server.Kestrel",
        "ef": "EntityFramework.Commands"
    },
    "frameworks": {
        "dnx451": {
            "dependencies": {
                "DataTables": "1.0.0-*"
            },
            "frameworkAssemblies": {
                "System.Web": "4.0.0.0"
            }
        }
    },
...
}

本地化 global.json

{
    "projects": [
        "src",
        "test"
    ],
    "sdk": {
        "version": "1.0.0-beta8"
    }
}`

project.json

{
    "version": "1.0.0-*",
    "dependencies": {
        "Microsoft.Framework.Localization": "1.0.0-beta8",
        "Microsoft.AspNet.Server.WebListener": "1.0.0-beta8",
        "Microsoft.Framework.Configuration.Json": "1.0.0-beta8",
        "Newtonsoft.Json": "7.0.1-*"
    },
    "frameworks": {
        "dnx451": { }
    }
}

3 个答案:

答案 0 :(得分:1)

重新启动Visual Studio !!!

花费HOURS搞乱这个并得到如下错误:

  

无法确定RRStore.EF。如果一个项目,这可能会发生   按源引用其他项目,这些项目有一个   global.json文件,指定SDK的不同版本。

我添加了一个global.json文件(否则无处可见),但没有任何区别。

然后我最终决定尝试 重新启动Visual Studio,即使没有global.json

,它也能立即生效

答案 1 :(得分:0)

我在错误的位置添加了global.json。将文件移动到C:\ git \ Localization \ global.json后,该项目在VS2015下正常工作。

似乎VS2015没有添加项目,因为存在参考冲突。 将现有项目添加到解决方案将始终有效,但有时会导致冲突。

可以使用后续步骤删除项目。 *从global.json中删除。 *从解决方案中删除项目(可能不再需要) *删除projects.json.lock

答案 2 :(得分:0)

值得一提的是,如果有多个global.json文件,就会出现这种情况。

就我而言,我将一个依赖项引用为Git子模块。我将子模块项目添加到主解决方案中,以便调试导致OP中列出的错误的依赖项。

从子模块中删除global.json(暂时)解决了这个问题。