找不到应用程序依赖项清单 (MyApp.deps.json) 中指定的程序集:
An assembly specified in the application dependencies manifest (MyApp.deps.json) was not found:
我的项目是使用 SDK 3.1.101
在 Azure Pipelines
中构建的,没有任何 errors/warnings,但是在部署到主机 (Ubuntu 18.04
) 之后,我收到错误:
Error:
An assembly specified in the application dependencies manifest (MyApp.deps.json) was not found:
package: 'Microsoft.Data.SqlClient', version: '1.0.19269.1'
path: 'runtimes/unix/lib/netcoreapp2.1/Microsoft.Data.SqlClient.dll'
一些调查指出问题来自 Microsoft.EntityFrameworkCore.SqlServer
,它引用了 Microsoft.Data.SqlClient
。
看起来它试图从 v2.1 中找到库,对我来说有点奇怪 - 但它是 LST,所以也许...
最初在主机上只有 aspnetcore-runtime-3.1
,所以,我认为通过安装 v2.1 可能会解决问题,并安装了 aspnetcore-runtime-2.1
,然后安装了两个版本的 SDK,但到目前为止没有任何帮助:(
有什么解决办法吗?
找到了解决方法!
通过查看我项目的 ./bin/Debug/netcoreapp3.1/
目录,发现即使我在 Windows 上构建它,它仍然会创建 runtimes/unix
目录并将丢失的 DLL 放在那里Ubuntu
.
因此,通过手动将所有内容从 runtimes/unix
上传到部署机器,进入我的应用程序的 CONTENT_ROOT
- 解决了它。
P.S.
仍然不知道为什么在部署过程中没有上传它。
但这是另一个故事了;)
我通过更改
修复了它
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.1" PrivateAssets="All" />
进入
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.1" />
将应用程序升级到 .NET Core 后,我遇到了同样的问题。
旧版本的应用程序只需要 DLL 文件以及要部署的 EXE。所以我只是做了同样的事情,这个 运行 在我自己的机器上很好,但是当 运行 从 VM 中使用相同的应用程序时,我在问题中遇到了错误。
仔细查看错误后,我尝试将 运行times 文件夹复制到 VM,这解决了我的问题。
我仍然不清楚为什么应用程序可以在我的机器上 运行 而没有原位的 运行times 文件夹。
我的项目是使用 SDK 3.1.101
在 Azure Pipelines
中构建的,没有任何 errors/warnings,但是在部署到主机 (Ubuntu 18.04
) 之后,我收到错误:
Error:
An assembly specified in the application dependencies manifest (MyApp.deps.json) was not found:
package: 'Microsoft.Data.SqlClient', version: '1.0.19269.1'
path: 'runtimes/unix/lib/netcoreapp2.1/Microsoft.Data.SqlClient.dll'
一些调查指出问题来自 Microsoft.EntityFrameworkCore.SqlServer
,它引用了 Microsoft.Data.SqlClient
。
看起来它试图从 v2.1 中找到库,对我来说有点奇怪 - 但它是 LST,所以也许...
最初在主机上只有 aspnetcore-runtime-3.1
,所以,我认为通过安装 v2.1 可能会解决问题,并安装了 aspnetcore-runtime-2.1
,然后安装了两个版本的 SDK,但到目前为止没有任何帮助:(
有什么解决办法吗?
找到了解决方法!
通过查看我项目的 ./bin/Debug/netcoreapp3.1/
目录,发现即使我在 Windows 上构建它,它仍然会创建 runtimes/unix
目录并将丢失的 DLL 放在那里Ubuntu
.
因此,通过手动将所有内容从 runtimes/unix
上传到部署机器,进入我的应用程序的 CONTENT_ROOT
- 解决了它。
P.S.
仍然不知道为什么在部署过程中没有上传它。
但这是另一个故事了;)
我通过更改
修复了它<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.1" PrivateAssets="All" />
进入
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.1" />
将应用程序升级到 .NET Core 后,我遇到了同样的问题。 旧版本的应用程序只需要 DLL 文件以及要部署的 EXE。所以我只是做了同样的事情,这个 运行 在我自己的机器上很好,但是当 运行 从 VM 中使用相同的应用程序时,我在问题中遇到了错误。
仔细查看错误后,我尝试将 运行times 文件夹复制到 VM,这解决了我的问题。
我仍然不清楚为什么应用程序可以在我的机器上 运行 而没有原位的 运行times 文件夹。