本文主要記錄.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上面中文問題就特別多)