Asp.net core 找不到应用程序依赖项清单(MyApp.deps.json)中指定的程序集:

Asp.net core 找不到应用程序依赖项清单(MyApp.deps.json)中指定的程序集:,asp.net-core,ubuntu-18.04,Asp.net Core,Ubuntu 18.04,我的项目是使用sdk3.1.101在Azure管道中构建的,没有任何错误/警告,但在部署到主机(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'

我的项目是使用
sdk3.1.101
Azure管道中构建的,没有任何错误/警告,但在部署到主机(
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.Data.SqlClient
的Microsoft.EntityFrameworkCore.SqlServer

看起来它试图从v2.1中查找库,我觉得有些奇怪-但它是LST,所以可能

最初在主机上只有
aspnetcore-runtime-3.1
,因此,我认为通过安装v2.1可以解决问题,并安装了
aspnetcore-runtime-2.1
,然后两个版本都安装了SDK,但迄今为止没有任何帮助:(

有没有想过如何修复它?

找到了修复它的方法

通过查看我的项目的
/bin/Debug/netcoreapp3.1/
目录,发现即使我在Windows上构建它,它仍然会创建
运行时/unix
目录,并将
Ubuntu
中缺少的DLL放在那里

因此,通过手动将所有从
运行时/unix
上传到部署计算机,到我的应用程序的
CONTENT\u ROOT
解决了这个问题

附加说明
仍然不知道为什么在部署过程中没有上传。
但这是另一个故事;)

我通过改变

<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.1" PrivateAssets="All" />

进入


在我们将一个应用程序升级到.NET Core之后,我遇到了同样的问题。 应用程序的旧版本只需要部署DLL文件和EXE。所以我也做了同样的事情,这在我自己的机器上运行得很好,但是当我从虚拟机上运行相同的应用程序时,我遇到了问题中的错误

仔细查看错误后,我尝试将运行时文件夹复制到VM,这解决了我的问题

我仍然不清楚为什么应用程序可以在我的机器上运行,而不需要运行时文件夹

<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.1" />