关于.net Core项目发布在Linux上的填坑

时间:2021-03-16 12:57:04

本文主要记录.net Core项目发布在Linux服务器上面所遇到的问题,防止遗忘是

1、在发布文件中执行 dotnet xxxxxx.dll的时候提示如下错误:

An assembly specified in the application dependencies manifest (xxx.deps.json) was not found:
package: 'Swashbuckle.AspNetCore.Swagger', version: '1.0.0'
path: 'lib/netstandard1.6/Swashbuckle.AspNetCore.Swagger.dll'

解决:

一开始我在Linux上面是可以正常发布改项目的(A压缩文件),但是又一次委托同事电脑发布更新之后发现无法发布了(B压缩文件)。根据提示我查看了A,B两个发布包中的xxx.deps.json后

发现部分sdk版本不一样,B中有些SDK版本为2.0.3.。然后在Linux中 dotnet --version发现目前dotnet sdk版本为2.0.0,更新为2.0.3(或者以上)之后发现程序可以正常发布了。

2、无法读取本地文件

解决:将所有文件引用地址改为相对地址。(不要用绝对地址)

这个问题有一个补充。项目中的菜单是根据读取本地的一个dataClient.json文件来生成的。然后在windows中可以正常读取。发布到Linux中有无法读取了。检查后发现程序中读取的文件名称为“dataClient.Json”。文件后缀大小写不准确,但是在windows中可以正确读取,Linux就无法正确读取了。

其他后续补充。。。。。。、

2018年4月27日补充

3、ejsExcel中模板文件无法找到

解决:无法识别中文名称的问题件。

感觉在Linux上面还是不要写中文的好。

4、mysql 中函数结果中文乱码,单纯的sql语句是没有影响的。

解决:如果字段类型是中文的话最好设置为nvarchar不要设置 varchar(在Winodws上面都是正常的,到Linux上面中文问题就特别多)