Ошибка сборки для UWP-приложения Microsoft.Bcl.Build и packages.config рядом с файлом проекта

При создании Windows Universal приложений возникает странная ошибка сборки.

Код серьезности Описание Состояние подавления строки файла проекта Ошибка Не удалось найти C:\Users\я\Source\Репо\TT\Windows\MyCommonLibrary\packages.config. Убедитесь, что в этом проекте установлен Microsoft.Bcl.Build и package.config находится рядом с проектом файл. MyApp

"MyApp" имеет ссылку на проект "MyCommonLibrary".

Что действительно странно, так это то, что он отображается как ошибка сборки. Это не влияет на мою способность создавать "MyApp" или "MyCommonLibrary"!

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

Ответы

Ответ 1

Я продолжил работу с владельцами пакетов Bcl.Build и получил ответ от Эрика Сент-Джон. Он говорит, что вы не должны ссылаться на Bcl.Build в проекте UWP, в котором используется project.json, и есть свойство проекта для подавления предупреждения, которое говорит вам об этом.

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

Чтобы обойти ошибку со старым пакетом, выполните следующие действия:

Добавить <SkipValidatePackageReferences> true </SkipValidatePackageReferences> в верхнюю часть вашего csproj/vbproj

Ответ 2

Я считаю, что это ложный позитив из Обновление Nuget до 3.1.

За это время я решил это, создав package.config. Visual Studio требует вручную из существующего project.json.

Например:

project.json

{
  "dependencies": {
    "Microsoft.Bcl.Build": "1.0.21",
    "Newtonsoft.Json": "8.0.2"
  },
  "frameworks": {
    "uap10.0": {}
  },
  "runtimes": {
    "win10-arm": {},
    "win10-arm-aot": {},
    "win10-x86": {},
    "win10-x86-aot": {},
    "win10-x64": {},
    "win10-x64-aot": {}
  }
}

packages.config

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="uap10.0" />
  <package id="Newtonsoft.Json" version="8.0.2" targetFramework="uap10.0" />
</packages>