Зависимость приложения не найдена во время выпуска агентом сборки - PullRequest
0 голосов
/ 14 января 2019

Моя библиотека .NETStandard отлично работает локально в Visual Studio. Но когда я выпускаю WebApi, содержащий мою библиотеку .NETStandard, процесс выпуска завершился неудачей на этапе EF Core Migrations. Я использую задачу выпуска Deploy Entity Framework Core Migrations от @bendayconsulting. Я получаю сообщение об ошибке: сборка, указанная в манифесте зависимостей приложения (MySecondMobileApp.ServerData.deps.json), не найдена: пакет: 'Google.Protobuf', версия: '3.5.1' путь: 'lib / netstandard1.0 / Google.Protobuf.dll

Когда я смотрю на папку пакетов в моем решении, сборка Google.Protobuf отсутствует. Сборка хранится в моей глобальной папке NuGet и является частью пакета NuGet MySql.EntityFrameWorkCore. Пакет MySql.EntityFramworkCore также установлен в глобальной папке NuGet моего пользователя. Как я могу получить эти пакеты в папке решения? Я думаю, что это ответ моей проблемы.

Мой файл deps выглядит так:

{
  "runtimeTarget": {
    "name": ".NETStandard,Version=v2.0/",
    "signature": "19d3dd659b5fa2adabeefcff78ce8381da3d4fe9"
  },
  "compilationOptions": {},
  "targets": {
    ".NETStandard,Version=v2.0": {},
    ".NETStandard,Version=v2.0/": {
      "ClassLibrary1/1.0.0": {
        "dependencies": {
          "Google.Protobuf": "3.6.1",
          "NETStandard.Library": "2.0.3"
        },
        "runtime": {
          "ClassLibrary1.dll": {}
        }
      },
      "Google.Protobuf/3.6.1": {
        "dependencies": {
          "NETStandard.Library": "2.0.3"
        },
        "runtime": {
          "lib/netstandard1.0/Google.Protobuf.dll": {
            "assemblyVersion": "3.6.1.0",
            "fileVersion": "3.6.1.0"
          }
        }
      },
      "Microsoft.NETCore.Platforms/1.1.0": {},
      "NETStandard.Library/2.0.3": {
        "dependencies": {
          "Microsoft.NETCore.Platforms": "1.1.0"
        }
      }
    }
  },
  "libraries": {
    "ClassLibrary1/1.0.0": {
      "type": "project",
      "serviceable": false,
      "sha512": ""
    },
    "Google.Protobuf/3.6.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-D/h9IZl76jjfM5VlPzG235Zdys9RKXNLYbRGm2fa6Y2UshTqAvYBPIydNOvNTEa24DER/m/zvelHlLO9n1GtNQ==",
      "path": "google.protobuf/3.6.1",
      "hashPath": "google.protobuf.3.6.1.nupkg.sha512"
    },
    "Microsoft.NETCore.Platforms/1.1.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==",
      "path": "microsoft.netcore.platforms/1.1.0",
      "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512"
    },
    "NETStandard.Library/2.0.3": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==",
      "path": "netstandard.library/2.0.3",
      "hashPath": "netstandard.library.2.0.3.nupkg.sha512"
    }
  }
}

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Наконец-то я решил эту проблему. Во-первых, я извинюсь за мой неполный вопрос. Я должен был сказать stackoverflow всю мою проблему. Моя базовая проблема заключается в том, что я не смог выпустить свой WebAPI, содержащий EntityFrameworkCore для MySql, на агенте сборки Hosted2017 в Azure Devops. Агент сборки также выполняет перенос базы данных.

После некоторых размышлений я сообщил, что MySqlConnection не поддерживается .NET по умолчанию -> вам нужно установить дополнительное клиентское программное обеспечение на агенте сборки. К сожалению, агенты сборки Microsoft не имеют возможности устанавливать соединение MySQLC между агентом сборки и сервером базы данных MySQL.

Что для меня в данный момент совершенно важно, так это тот факт, что API WebServer в AWS поддерживает это соединение с базой данных по умолчанию. Мой WebAPI отлично работает на веб-сервере.

Решением для меня, чтобы заставить агент сборки работать с MySQL, было установить локальный агент сборки и установить MySQL Workbench для установки программного обеспечения MYSQL. Теперь агент сборки работает нормально. Миграции успешно выполнены.

0 голосов
/ 14 января 2019

Сконфигурируйте фид управления пакетами (артефакты Azure) и отправьте в него ваши внутренние пакеты, затем используйте задачу восстановления NuGet в вашей сборке перед сборкой, чтобы восстановить пакеты из вашей внутренней ленты.

...