Visual Studio 2017 发布的项目在 Ubuntu 运行出错 *.deps.json was not found
Posted 那山村的那个人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Visual Studio 2017 发布的项目在 Ubuntu 运行出错 *.deps.json was not found相关的知识,希望对你有一定的参考价值。
原文网址:https://blog.csdn.net/lihongzhai/article/details/79039160
今天遇到了很奇怪的现象,在Windows上发布的asp.net core app部署到linux上就不好用了。提示如下错误:
Error:
An assembly specified in the application dependencies manifest (Calculate24Web.deps.json) was not found:
package: ‘Microsoft.AspNetCore.Antiforgery’, version: ‘2.0.1’
path: ‘lib/netstandard2.0/Microsoft.AspNetCore.Antiforgery.dll’
This assembly was expected to be in the local runtime store as the application was published using the following target manifest files:
aspnetcore-store-2.0.3.xml
这个是我自己发布后在 Ubuntu 上运行时显示的错误
Error: An assembly specified in the application dependencies manifest (*.*.deps.json) was not found: package: ‘Microsoft.AspNetCore.Antiforgery‘, version: ‘2.0.3‘ path: ‘lib/netstandard2.0/Microsoft.AspNetCore.Antiforgery.dll‘ This assembly was expected to be in the local runtime store as the application was published using the following target manifest files: aspnetcore-store-2.0.8.xml
把源码拷贝到Linux的机器上,可以编译,可以在开发模式下运行,(好像在Debug模式下还成功了),后来在Release模式下发布,就不能运行,提示上面的错误。
经过一天的倒腾,终于,最后,是个小问题。问题是asp.net 没有把服务器需要的包全部发布出来,它认为是目标系统带着有,而实际上目标系统中没有。
解决办法:
增加如下一行到 csjproj文件中即可:
<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
最后csjproj文件看上去像这个样子:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
</PropertyGroup>
以上是关于Visual Studio 2017 发布的项目在 Ubuntu 运行出错 *.deps.json was not found的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Visual Studio 2017 中启用 WiX 项目
cmake 项目在 Visual Studio 2017 中看不到
如何在 Visual Studio 2017 中创建 Visual c++ MFC 控制台项目
如何在 Visual Studio 2017 项目中启用 C# 7 的所有功能?