關於.net Core項目發布在Linux上的填坑


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM