azure-devops - 构建代理发布时未找到应用程序依赖项
问题描述
我的 .NETStandard 库在 Visual Studio 上本地运行良好。但是,当我发布包含我的 .NETStandard 库的 WebApi 时,发布过程在 EF Core 迁移步骤中失败了。我使用 @bendayconsulting 的 Deploy Entity Framework Core Migrations 发布任务。我收到的错误消息是未找到应用程序依赖项清单(MySecondMobileApp.ServerData.deps.json)中指定的程序集:包:'Google.Protobuf',版本:'3.5.1' 路径:'lib/netstandard1.0 /Google.Protobuf.dll
当我查看解决方案中的 packages 文件夹时,没有 Google.Protobuf 程序集。该程序集存储在我的全局 NuGet 文件夹中,并且是 MySql.EntityFrameWorkCore NuGet 包的一部分。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"
}
}
}
解决方案
最后,我解决了这个问题。首先,我会为我不完整的问题道歉。我不得不告诉stackoverflow我的整个问题。我的基本问题是我无法在 Azure Devops 的 Hosted2017 构建代理上发布包含 MySql 的 EntityFrameworkCore 的 WebAPI。构建代理还执行数据库迁移。
经过一番思考,我意识到.NET 默认不支持 MySqlConnection -> 您必须在构建代理上安装其他客户端软件。不幸的是,Microsoft 构建代理没有能力在构建代理和 MySQL 数据库服务器之间建立 MySQLConnection。
目前对我来说完全不同的是,AWS 上的 API WebServer 默认支持此数据库连接。我的 WebAPI 在网络服务器上运行良好。
让构建代理与 MySQL 一起工作的解决方案是安装内部构建代理并安装 MySQL Workbench 以安装 MYSQL 软件。现在构建代理工作正常。迁移已成功执行。
推荐阅读
- java - 不知道如何修复:错误:不兼容的类型:可能有损从 double 到 int 的转换
- c# - C#中是否有注解来迭代序列化创建的xml中的数组元素的名称?
- c# - 有什么方法可以检测对象是什么 ui 类型?
- node.js - 条纹“没有这样的价格”
- laravel - Laravel:key() 期望参数 1 是数组,给定整数
- markdown - 标准化 DITA:将主题拆分为单独的文件?
- shell - 使用 Ansible 将给定路径中的子目录和文件移动到父目录
- ssh - 有没有办法使用 gcloud compute ssh 实用程序远程执行命令
- node.js - 从 index.hml 加载 manifest.json 时 React/Electron Production Build 给出 CORS 错误
- python - 使用python访问照相手机的问题