【问题标题】:DNX dependency conflict "The type 'CultureInfo' exists in both 'System.Globalization' and 'mscorlib'"?DNX 依赖冲突“‘System.Globalization’和‘mscorlib’中都存在‘CultureInfo’类型”?
【发布时间】:2015-08-03 13:13:02
【问题描述】:

我已经使用 DNX SDK 版本 1.0.0-beta6 在 Visual Studio 2015 中启动了一个新项目。我需要在我的类中使用System.Globalization.CultureInfo 类,如下所示:

using System;
using System.Globalization;

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

        // ...etc.
    }
}

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

“CultureInfo”类型存在于“System.Globalization”中, 版本=4.0.10.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a' 和'mscorlib,版本=4.0.0.0,文化=中性, PublicKeyToken=b77a5c561934e089'

全局.json

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

项目.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 中,我不应该被提示添加引用,当然如果不是,我不应该得到第二个错误。如何解决这个依赖问题?

【问题讨论】:

  • 您应该显示global.josnproject.json
  • 这是编译时错误吗?是否可以像使用全名来区分两个类一样简单? (例如System.Globalization.CultureInfo 而不仅仅是CultureInfo?)
  • @adv12 是的,这是一个编译时错误,但不是,这些类都是 System.Globalization.CultureInfo,但版本不同。无论如何我都试过了,但没有效果。
  • @HamletHakobyan 我已经添加了这段代码。请注意,我没有手动修改它 - 我使用 Nuget 添加了 System.Globalization
  • 您选择了哪种 Clr 类型?您可以从“开始”下拉菜单中查看。

标签: c# dependencies nuget visual-studio-2015 dnx


【解决方案1】:

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

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

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

然后我删除了“依赖项”下对 .NET Core 包 (System.*) 的所有引用。

这解决了冲突。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-22
      • 1970-01-01
      • 2018-05-18
      • 1970-01-01
      相关资源
      最近更新 更多