Ошибка при нацеливании на .net core RC2 и .net4.6.1.

У меня есть следующий проект.json:

{
"version": "1.0.0-*",

  "dependencies": {
    "NETStandard.Library": "1.5.0-rc2-24027",
    "Dapper": "1.50.0-rc2b",
    "Microsoft.Extensions.DependencyInjection": "1.0.0-rc2-final",
    "System.Dynamic.Runtime": "4.0.11-rc2-24027",
    "Microsoft.CSharp": "4.0.1-rc2-24027"
  },

  "frameworks": {
    "netstandard1.5": {
      "imports": "dnxcore50"
    },
    "net461": {}
  }
}

теперь я получаю следующие предупреждения, которых я бы предпочел не иметь

Указанная зависимость была System.Dynamic.Runtime ›= 4.0.11-rc2-24027, но закончилась System.Dynamic.Runtime 4.0.10.0.

Указанная зависимость была Microsoft.CSharp ›= 4.0.1-rc2-24027, но закончилась Microsoft.CSharp 4.0.0.0.

удаление net461 из фреймворков решает мою проблему, но это не предпочтительный выбор.

Однако теперь я могу догадаться, почему я их получаю, что-то связанное с теми библиотеками, которые не поддерживают net461, хотя мне это кажется немного странным.

Я пытался использовать только старую версию, но потом получаю предупреждение о том, что Dapper ожидает более новую версию. Есть идеи?

по какой-то причине перенос зависимостей на каждый фреймворк конкретно (те же версии) также решает эту проблему.


person gilmishal    schedule 10.06.2016    source источник
comment
Я не могу воспроизвести это, ваш project.json не выдает мне никаких предупреждений. И оба этих пакета поддерживают net45.   -  person svick    schedule 10.06.2016
comment
Странно, мне удалось воспроизвести это с новым проектом библиотеки основных классов.   -  person gilmishal    schedule 10.06.2016
comment
@gilmishal Я могу воспроизвести предупреждения. Но зачем вообще нужны эти зависимости? Ссылка на Dapper неявно добавит их. Вы можете просто удалить их?   -  person Nate Barbettini    schedule 10.06.2016
comment
удаление этих результатов приводит к следующей ошибке Отсутствует обязательный член компилятора «Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create»   -  person gilmishal    schedule 11.06.2016
comment
Я подозреваю, что где-то зарыто правило сборки, которое хочет высказаться, потому что разрешенная сборка имеет более низкий номер версии. Лучше нажать кнопку Новая проблема.   -  person Hans Passant    schedule 11.06.2016


Ответы (1)


Зависимости, специфичные для платформы, должны быть указаны в элементе, специфичном для платформы. Вот так:

{
  "version": "1.0.0-*",

  "dependencies": {
    "Dapper": "1.50.0-rc2b",
    "Microsoft.Extensions.DependencyInjection": "1.0.0-rc2-final",
    "System.Dynamic.Runtime": "4.0.11-rc2-24027"
  },

  "frameworks": {
    "netstandard1.5": {
      "dependencies": {
        "NETStandard.Library": "1.5.0-rc2-24027"
      },
      "imports": "dnxcore50"
    },
    "net461": {
      "dependencies": {
        "Microsoft.CSharp": "4.0.1-rc2-24027"
      }
    }
  }
}
person Ivan Prodanov    schedule 11.06.2016