2015-08-03 1 views
1

Я начал новый проект в Visual Studio 2015, используя DNX SDK версии 1.0.0-beta6. Мне нужно использовать класс System.Globalization.CultureInfo в моем классе следующим образом:конфликт зависимости DNX «Тип« CultureInfo »существует как в« System.Globalization », так и« mscorlib »?

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, мне не следовало предлагать добавить ссылку, и, конечно, если бы это было не так, я не должен был получать вторую ошибку. Как я могу решить эту проблему с зависимостями?

+0

Вы должны показать 'global.josn' и' project.json'. –

+0

Является ли это ошибкой во время компиляции? Может ли быть так же просто, как использовать полные имена, чтобы различать эти два класса? (например, 'System.Globalization.CultureInfo', а не просто' CultureInfo'?) – adv12

+0

@ adv12 Да, это ошибка времени компиляции, но нет, классы являются как «System.Globalization.CultureInfo», так и разными версиями. Я пробовал это в любом случае, но не имел никакого эффекта. – Ivan

ответ

1

Проблема действительно заключалась в файлах project.json, а также в других проектах в моем решении.

В других моих проектах, которые были по умолчанию при создании новых проектов, я выбрал «dotnet» вместо «dnx451». Я изменил все рамки в каждом файле project.json следующим образом:

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

Я тогда удалил все ссылки на .NET пакеты ядра (System *.) В разделе «зависимостей».

Это разрешило конфликт.

0

Я решил проблему, удалив ссылку System.Data.Common (был источником ссылки на System.Globalization). Я не знаю, что произойдет, если мне действительно понадобится System.Globalization, но я перейду через этот мост позже, я полагаю.

Смежные вопросы