Обновление ASP .NET 5 MVC 6 beta 7: проблема "Несколько сборок с одинаковой идентификацией"

В настоящее время пытаюсь перейти с бета-версии 6 на бета-версию 7 ASP .NET 5 MVC 6. Я выполнил шаги, подробно изложенные здесь: Как обновить ASP.NET 5 с бета-версии 6 до бета-версии 7, но у меня все еще есть проблема с сборками:

Multiple assemblies with equivalent identity have been imported: '<in-memory-assembly>' and '<in-memory-assembly>'. Remove one of the duplicate references.

Этот блог дает некоторую подсказку, чтобы решить эту проблему, но, к сожалению, не соответствует случаю моего проекта.

Я знаю, что это связано со списком пакетов в project.json. Некоторые решения предлагали Microsoft.Framework.Runtime.Abstractions, но, опять же, у меня его нет в моем списке.

Мой проект состоит из нескольких частей, которые иногда ссылаются друг на друга. Проблема сборки возникает в двух из них, и я думаю, что это связано, так как ошибка появляется 8 раз для каждого.

Вот project.json для обоих:

{
    "webroot": "wwwroot",
    "version": "1.0.0-*",
    "dependencies": {
        "EntityFramework.SqlServer": "7.0.0-beta7",
        "EntityFramework.Commands": "7.0.0-beta7",
        "EntityFramework.Core": "7.0.0-beta7",
        "Microsoft.AspNet.Mvc": "6.0.0-beta7",
        "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta7",
        "Microsoft.AspNet.Diagnostics": "1.0.0-beta7",
        "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta7",
        "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta7",
        "Microsoft.AspNet.Server.IIS": "1.0.0-beta7",
        "Microsoft.AspNet.Loader.IIS": "1.0.0-beta7",
        "Microsoft.AspNet.Server.WebListener": "1.0.0-beta7",
        "Microsoft.AspNet.StaticFiles": "1.0.0-beta7",
        "Microsoft.Framework.Configuration": "1.0.0-beta7",
        "Microsoft.Framework.Configuration.Json": "1.0.0-beta7",
        "Microsoft.Framework.CodeGenerators.Mvc": "1.0.0-beta5",
        "Microsoft.Framework.Logging": "1.0.0-beta7",
        "Microsoft.Framework.Logging.Console": "1.0.0-beta7",
        "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta7",
        "SSI.Domain": "",
        "SSI.Service": "",
        "log4net": "2.0.3",
        "jQuery.UI.Themes.smoothness": "1.8.9",
        "SSI.WordDocumentGenerator.Client": "1.0.0-*"
    },
    "commands": {
        "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000",
        "gen": "Microsoft.Framework.CodeGeneration",
        "ef": "EntityFramework.Commands"
    },
    "frameworks": {
        "dnx451": {
            "frameworkAssemblies": {
                "System.DirectoryServices": {
                    "version": "",
                    "type": "build"
                },
                "System.DirectoryServices.AccountManagement": {
                    "version": "4.0.0.0",
                    "type": "build"
                }
            }
        }
    },
    "exclude": [
        "wwwroot",
        "node_modules",
        "bower_components"
    ],
    "publishExclude": [
        "node_modules",
        "bower_components",
        "**.xproj",
        "**.user",
        "**.vspscc"
    ],
    "compilationOptions": {
        "warningsAsErrors": true
    }
}

-

{
    "version": "1.0.0-*",
    "description": "",
    "authors": [ "author" ],
    "tags": [ "" ],
    "projectUrl": "",
    "licenseUrl": "",

    "dependencies": {
        "SSI.Domain": "",
        "SSI.Service": "",
        "DocumentFormat.OpenXml": "2.5.0"
    },

    "frameworks": {
        "dnx451": {
            "dependencies": {
                "System.Collections": { "version": "4.0.0.0", "type": "build" },
                "System.Linq": { "version": "4.0.0-beta-23109", "type": "build" },
                "System.Threading": { "version": "4.0.10-beta-23109", "type": "build" },
                "Microsoft.CSharp": { "version": "4.0.0-beta-22816", "type": "build" }
            },
            "frameworkAssemblies": {
                "WindowsBase": { "version": "4.0.0.0", "type": "build" }
            }

        }
    }
}

Я попытался удалить некоторые пакеты, запустить dnu restore, чтобы увидеть, есть ли ошибка, и она всегда есть, поэтому у меня заканчиваются идеи...

2 ответа

Решение

Трудно сказать, не видя весь проект, но я предполагаю, что второй фрагмент JSON из вашей библиотеки. Я предполагаю, что это ваша библиотека, которая вызывает ошибки, и это просто сообщается в вашем веб-приложении.

Вот несколько идей:

  • Переместите ваши фреймворки:dnx451: зависимости в фреймворки:dnx451:frameworkAssemblies.
  • Удалите -бета- идентификаторы в этих пакетах System.* (Скорее всего, он пытается захватить пакеты Nuget вместо использования локальных системных библиотек)
  • Измените номер версии System.* На "4.0.0.0"
  • Переключитесь на менее подробный справочный синтаксис (то есть удалите "версию" и "тип" и просто укажите версию в кавычках, например "System.Linq": "4.0.0.0")
  • Удалить Microsoft.CSharp

Я столкнулся с этой проблемой, когда я добавил библиотеку классов в веб-проект. Когда я добавил библиотеку классов, файловые рамки project.json выглядели так...

  "frameworks": {
    "dotnet": { }
  }

Когда я сопоставил рамки моего веб-приложения, ошибка была устранена.

  "frameworks": {
    "dnx451": { },
    "dnxcore50": { }
  }
Другие вопросы по тегам