DNX 依赖冲突 "The type 'CultureInfo' exists in both 'System.Globalization' and 'mscorlib'"?

DNX dependency conflict "The type 'CultureInfo' exists in both 'System.Globalization' and 'mscorlib'"?

我在 Visual Studio 2015 年使用 DNX SDK 版本 1.0.0-beta6 开始了一个新项目。我需要在 class 中使用 class System.Globalization.CultureInfo 如下:

using System;
using System.Globalization;

namespace Foo
{
    public class Bar
    {
        public CultureInfo Culture { get; private set; }

        // ...etc.
    }
}

系统提示我添加对 System.Globalization 的引用,这是我使用 Nuget 所做的。之后,我收到以下错误:

The type 'CultureInfo' exists in both 'System.Globalization, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'

Global.json

{
  "sources": [ "src", "test" ],
  "sdk": {
    "version": "1.0.0-beta6",
    "runtime": "clr",
    "architecture": "x86"
  }
}

project.json

{
  "webroot": "wwwroot",
  "version": "1.0.0-*",

  "dependencies": {
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta6",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta6",
    "Microsoft.AspNet.Mvc": "6.0.0-beta6",
    "Baz.Domain.Model": ""
  },

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

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

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

显然我有一个依赖性问题,但我不确定新的 DNX 如何解决这些问题。当然,如果引用已经存在于 mscorlib 中,我就不应该被提示添加引用,而且如果不是,我肯定不会得到第二个错误。我该如何解决这个依赖问题?

问题确实出在 project.json 个文件中,但在我的解决方案中的其他项目中。

在我的其他项目中,我的目标是 "dotnet" 而不是 "dnx451",这是创建新项目时的默认设置。我更改了每个 project.json 文件中的所有框架,如下所示:

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

然后我删除了 "dependencies" 下对 .NET Core 包 (System.*) 的所有引用。

这解决了冲突。

我通过删除对 System.Data.Common 的引用(这是对 System.Globalization 的引用的来源)解决了这个问题。我不知道如果我最终真的需要 System.Globalization 会发生什么,但我想我稍后会过那座桥。