原文地址: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

把源码拷贝到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>

 

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐