Я изменил тип проекта, который я упаковываю, с .net framework v4.6 на .net standard 2.0, теперь определение сборки не работает на этапе Nuget Packager, и я получаю это сообщение об ошибке.

[ошибка] Пространством имен XML по умолчанию для проекта должно быть пространство имен XML MSBuild. Если проект создан в формате MSBuild 2003, добавьте к элементу xmlns = "http://schemas.microsoft.com/developer/msbuild/2003". Если проект был создан в старом формате 1.0 или 1.2, преобразуйте его в формат MSBuild 2003.

Изучив эту ошибку, я понял, что этап упаковщика NuGet не работает с форматами csproj на основе SDK.

Какая из доступных альтернатив является лучшей? Я обнаружил ту же проблему здесь, но я не могу найти пакет команд в доступные команды.

3
Yahya Hussein 3 Янв 2018 в 16:17

2 ответа

Лучший ответ

Вот как я решил эту проблему:

1- Добавить метаданные пакета в файл .csproj.

2- Перейдите в свойства проекта -> пакет и установите флажок «Создать пакет NuGet при сборке».

3- В определении сборки добавьте следующие задачи:

A- Восстановление NuGet:

  • Задайте путь к решению.

  • Выберите каналы в моем файле NuGet.config в качестве каналов для использования.

  • Задайте путь к Nuget.config (обычно корневой каталог проекта «src \ nuget.config»).

B- Сборка Visual Studio:

  • Задайте путь к решению.

  • Платформа: что-то вроде $ (BuildPlatform).

  • Конфигурация: что-то вроде $ (BuildConfiguration).

C- Копирование и публикация артефактов сборки:

  • В содержимом введите * .nupkg.
  • Установите корень копирования, имя артефакта и тип артефакта.
1
Yahya Hussein 24 Янв 2018 в 09:57

Хотя команда pack не отображается в раскрывающемся списке, вы можете ввести ее вручную в поле.

1
Martin Ullrich 3 Янв 2018 в 17:09