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" />