Что мне делать, если ASP.NET 5 (vNext) не может перенаправить привязки?

Я просто промокаю ногами с MVC 6. Я установил VS 2015 и по умолчаниюASP.NET 5 preview MVC Web Application В шаблоне все нормально работает под локальным IIS.

Затем я попытался отключить контейнер DI по умолчанию сStructureMap следующийэти инструкции точно (обратите внимание, это очень недавняя статья). Единственное, что я должен был выяснить, пространства имен для импорта себя (так как автор не включил их), и это то, что я включил.

Я положилStructureMapRegistration класс и все связанные классы в одном файле, и здесь приведены примеры использования.

using Microsoft.Framework.DependencyInjection;
using StructureMap;
using StructureMap.Configuration.DSL.Expressions;

Я добавил следующие слова вStartup.cs файл.

using StructureMap;
using StructureMap.Graph;
using System.Reflection;

И я сделал следующее редактированиеStartup.cs файл.

// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
    // Add Entity Framework services to the services container.
    services.AddEntityFramework()
        .AddSqlServer()
        .AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));

    // Add Identity services to the services container.
    services.AddIdentity<ApplicationUser, IdentityRole>()
        .AddEntityFrameworkStores<ApplicationDbContext>()
        .AddDefaultTokenProviders();

    // Configure the options for the authentication middleware.
    // You can add options for Google, Twitter and other middleware as shown below.
    // For more information see http://go.microsoft.com/fwlink/?LinkID=532715
    services.Configure<FacebookAuthenticationOptions>(options =>
    {
        options.AppId = Configuration["Authentication:Facebook:AppId"];
        options.AppSecret = Configuration["Authentication:Facebook:AppSecret"];
    });

    services.Configure<MicrosoftAccountAuthenticationOptions>(options =>
    {
        options.ClientId = Configuration["Authentication:MicrosoftAccount:ClientId"];
        options.ClientSecret = Configuration["Authentication:MicrosoftAccount:ClientSecret"];
    });

    // Add MVC services to the services container.
    services.AddMvc();

    //// Uncomment the following line to add Web API services which makes it easier to port Web API 2 controllers.
    //// You will also need to add the Microsoft.AspNet.Mvc.WebApiCompatShim package to the 'dependencies' section of project.json.
    //// services.AddWebApiConventions();

    //// Register application services.
    //services.AddTransient<IEmailSender, AuthMessageSender>();
    //services.AddTransient<ISmsSender, AuthMessageSender>();

    var container = new Container();
    container.Configure(x =>
    {
        x.Scan(scanning =>
        {
            scanning.Assembly(Assembly.GetExecutingAssembly());
            scanning.TheCallingAssembly();
            scanning.WithDefaultConventions();
        });

        //x.AddRegistry<WebsiteRegistry>();
    });

    // Our framework extension point
    container.Populate(services);
}

Буквальнотолько вещи, которые я изменил по сравнению с шаблоном по умолчанию, это приведенные выше изменения и установкаStructureMap 3.1.6.186.

Операторы using подавляют все ошибки компиляции во время разработки, но при сборке я получаю несколько других ошибок.

Ошибка CS0012 Тип «Действие <>» определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку «mscorlib, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e, ретаргетинг = да». TestDI3.DNX Core 5.0 f: \ Users \ Shad \ documents \ visual studio 2015 \ Projects \ TestDI3 \ src \ TestDI3 \ Services \ StructureMapRegistration.cs 32

Ошибка CS0012 Тип 'IDisposable' определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку «mscorlib, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e, ретаргетинг = да». TestDI3.DNX Core 5.0 f: \ Users \ Shad \ documents \ visual studio 2015 \ Projects \ TestDI3 \ src \ TestDI3 \ Services \ StructureMapRegistration.cs 32

Ошибка CS0012 Тип 'Func <,>' определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку «mscorlib, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e, ретаргетинг = да». TestDI3.DNX Core 5.0 f: \ Users \ Shad \ Documents \ visual studio 2015 \ Проекты \ TestDI3 \ src \ TestDI3 \ Services \ StructureMapRegistration.cs 59

Ошибка CS0012 Тип «Объект» определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку «mscorlib, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e, ретаргетинг = да». TestDI3.DNX Core 5.0 f: \ Users \ Shad \ Documents \ visual studio 2015 \ Проекты \ TestDI3 \ src \ TestDI3 \ Services \ StructureMapRegistration.cs 59

Ошибка CS0012 Тип «Тип» определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку «mscorlib, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e, ретаргетинг = да». TestDI3.DNX Core 5.0 f: \ Users \ Shad \ documents \ visual studio 2015 \ Projects \ TestDI3 \ src \ TestDI3 \ Services \ StructureMapRegistration.cs 63

Ошибка CS0012 Тип 'Выражение <>' определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку «System.Core, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e, Retargetable = да». TestDI3.DNX Core 5.0 f: \ Users \ Shad \ documents \ visual studio 2015 \ Projects \ TestDI3 \ src \ TestDI3 \ Services \ StructureMapRegistration.cs 63

Ошибка CS0012 Тип «Объект» определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку «mscorlib, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e, ретаргетинг = да». TestDI3.DNX Core 5.0 f: \ Users \ Shad \ documents \ visual studio 2015 \ Projects \ TestDI3 \ src \ TestDI3 \ Services \ StructureMapRegistration.cs 63

Ошибка CS0012 Тип «Тип» определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку «mscorlib, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e, ретаргетинг = да». TestDI3.DNX Core 5.0 f: \ Users \ Shad \ Documents \ visual studio 2015 \ Проекты \ TestDI3 \ src \ TestDI3 \ Services \ StructureMapRegistration.cs 67

Ошибка CS0012 Тип 'Выражение <>' определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку «System.Core, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e, Retargetable = да». TestDI3.DNX Core 5.0 f: \ Users \ Shad \ Documents \ visual studio 2015 \ Проекты \ TestDI3 \ src \ TestDI3 \ Services \ StructureMapRegistration.cs 67

Ошибка CS0012 Тип «Объект» определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку «mscorlib, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e, ретаргетинг = да». TestDI3.DNX Core 5.0 f: \ Users \ Shad \ Documents \ visual studio 2015 \ Проекты \ TestDI3 \ src \ TestDI3 \ Services \ StructureMapRegistration.cs 67

Ошибка CS0012 Тип «Тип» определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку «mscorlib, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e, ретаргетинг = да». TestDI3.DNX Core 5.0 f: \ Users \ Shad \ Documents \ visual studio 2015 \ Проекты \ TestDI3 \ src \ TestDI3 \ Services \ StructureMapRegistration.cs 89

Ошибка CS0012 Тип 'IDisposable' определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку «mscorlib, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e, ретаргетинг = да». TestDI3.DNX Core 5.0 f: \ Users \ Shad \ Documents \ visual studio 2015 \ Проекты \ TestDI3 \ src \ TestDI3 \ Services \ StructureMapRegistration.cs 89

Ошибка CS0411 Аргументы типа для метода 'IContainer.GetInstance (string)' не могут быть выведены из использования. Попробуйте указать аргументы типа явно. TestDI3.DNX Core 5.0 f: \ Users \ Shad \ Documents \ visual studio 2015 \ Проекты \ TestDI3 \ src \ TestDI3 \ Services \ StructureMapRegistration.cs 89

Ошибка CS0012 Тип 'IDisposable' определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку «mscorlib, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e, ретаргетинг = да». TestDI3.DNX Core 5.0 f: \ Users \ Shad \ Documents \ visual studio 2015 \ Проекты \ TestDI3 \ src \ TestDI3 \ Services \ StructureMapRegistration.cs 107

Ошибка CS0012 Тип 'IDisposable' определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку «mscorlib, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e, ретаргетинг = да». TestDI3.DNX Core 5.0 f: \ Users \ Shad \ Documents \ visual studio 2015 \ Проекты \ TestDI3 \ src \ TestDI3 \ Services \ StructureMapRegistration.cs 107

Ошибка CS0012 Тип 'IDisposable' определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку «mscorlib, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e, ретаргетинг = да». TestDI3.DNX Core 5.0 f: \ Users \ Shad \ Documents \ visual studio 2015 \ Проекты \ TestDI3 \ src \ TestDI3 \ Services \ StructureMapRegistration.cs 120

Ошибка CS1061 «IContainer» не содержит определения для «Dispose», и метод расширения «Dispose», принимающий первый аргумент типа «IContainer», не найден (отсутствует директива using или ссылка на сборку?) TestDI3.DNX Core 5.0 f: \ Users \ Shad \ Documents \ visual studio 2015 \ Проекты \ TestDI3 \ src \ TestDI3 \ Services \ StructureMapRegistration.cs 120

Ошибка CS0012 Тип «Действие <>» определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку «mscorlib, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e, ретаргетинг = да». TestDI3.DNX Core 5.0 f: \ Users \ Shad \ Documents \ visual studio 2015 \ Проекты \ TestDI3 \ src \ TestDI3 \ Startup.cs 94

Ошибка CS0012 Тип «Объект» определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку «mscorlib, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e, ретаргетинг = да». TestDI3.DNX Core 5.0 f: \ Users \ Shad \ Documents \ visual studio 2015 \ Проекты \ TestDI3 \ src \ TestDI3 \ Startup.cs 94

Ошибка CS0012 Тип «Объект» определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку «mscorlib, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e, ретаргетинг = да». TestDI3.DNX Core 5.0 f: \ Users \ Shad \ Documents \ visual studio 2015 \ Проекты \ TestDI3 \ src \ TestDI3 \ Startup.cs 107

Ошибка CS0012 Тип 'IDisposable' определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку «mscorlib, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e, ретаргетинг = да». TestDI3.DNX Core 5.0 f: \ Users \ Shad \ Documents \ visual studio 2015 \ Проекты \ TestDI3 \ src \ TestDI3 \ Startup.cs 107

Ошибка CS0012 Тип «Объект» определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку «mscorlib, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e, ретаргетинг = да». TestDI3.DNX Core 5.0 f: \ Users \ Shad \ Documents \ visual studio 2015 \ Проекты \ TestDI3 \ src \ TestDI3 \ Startup.cs 107

Ошибка указывает, где проблема - мне нужна ссылка на mscorlib 2.0.5.0. Но я уже ссылаюсь на mscorlib 4.0.0.0 в проекте.

На этом этапе в ASP.NET <5 следующим шагом обычно будет добавление некоторых перенаправлений привязки к<bindingRedirect> раздел файла web.config. Однако после поиска, как это сделать в ASP.NET 5, я наткнулсяэтот ответ что указывает на то, что перенаправление привязки должно быть «полностью автоматическим».

Так это ошибка или есть какой-то шаг в моей конфигурации, который я пропустил, что приводит к этой ошибке?

конфигурация

DNX 1.0.0-бета5

.NET Framework

x86

IIS Express

project.json
{
    "webroot": "wwwroot",
    "userSecretsId": "aspnet5-TestDI3-1665343b-5aa5-4d08-8596-a1a536223a19",
    "version": "1.0.0-*",

    "dependencies": {
        "EntityFramework.SqlServer": "7.0.0-beta5",
        "EntityFramework.Commands": "7.0.0-beta5",
        "Microsoft.AspNet.Mvc": "6.0.0-beta5",
        "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta5",
        "Microsoft.AspNet.Authentication.Cookies": "1.0.0-beta5",
        "Microsoft.AspNet.Authentication.Facebook": "1.0.0-beta5",
        "Microsoft.AspNet.Authentication.Google": "1.0.0-beta5",
        "Microsoft.AspNet.Authentication.MicrosoftAccount": "1.0.0-beta5",
        "Microsoft.AspNet.Authentication.Twitter": "1.0.0-beta5",
        "Microsoft.AspNet.Diagnostics": "1.0.0-beta5",
        "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta5",
        "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta5",
        "Microsoft.AspNet.Server.IIS": "1.0.0-beta5",
        "Microsoft.AspNet.Server.WebListener": "1.0.0-beta5",
        "Microsoft.AspNet.StaticFiles": "1.0.0-beta5",
        "Microsoft.AspNet.Tooling.Razor": "1.0.0-beta5",
        "Microsoft.Framework.Configuration.Abstractions": "1.0.0-beta5",
        "Microsoft.Framework.Configuration.Json": "1.0.0-beta5",
        "Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta5",
        "Microsoft.Framework.Logging": "1.0.0-beta5",
        "Microsoft.Framework.Logging.Console": "1.0.0-beta5",
        "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta5",
        "structuremap": "3.1.6.186"
    },

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

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

    "exclude": [
        "wwwroot",
        "node_modules",
        "bower_components"
    ],
    "publishExclude": [
        "node_modules",
        "bower_components",
        "**.xproj",
        "**.user",
        "**.vspscc"
    ],
    "scripts": {
        "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ]
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос