最近.NET Core升級到2.0後開始慢慢搗鼓的多了起來,但遇到了不少坑,所以特來記錄下。
第一個坑 條件編譯符號
我們在寫一些方法的時候通常會為Debug模式增加一些輸出日誌等以便我們檢查,也會為Release模式增加或修改一些特定的參數,但今天我在寫這些的時候就遇到了這個坑
#if !DEBUG #endif 中間的程式碼不能我怎麼更改設定環境總是灰色,這讓我開始懷疑,難道VS 2017 的.NET Core 不支援條件編譯子了?
於是新建了個控制台程式測試了以下,但又發現還是起作用了的如下:
這裡就可以看到我明明不是Debug環境啊,可是#if DEBUG的還是正常色,! DEBUG的還是灰色,直接F5運行後發現結果出乎我意外
結果居然是正常的,如何我又懷疑是我vs 更新後出問題了,於是我又用.net framework 舊格式創建一個了一個專案發現舊的又是好的
#第二個坑 .NET Core MVC下的部分文件無法下載
使用.NET Core MVC創建了一個站點,本來使用的還蠻好的,但後來配備了app 於是就直接把apk 檔案放到網站的wwwroot目錄下了,改了個名字就叫app.apk,然後訪問:http://127.0.0.1/app.apk 回給我一個404 not find
#
因為搞iis 還是比較多,於是馬上想到一個是每天添加mime導致,於是去iis站點裡面增加,發現以及存在了
瞬間就懵逼了,於是就從到請求篩選裡面去找找是不是在那被禁止了但發現也沒用,於是又把文件改成app.apk.zip試了下,發現zip是可以下載的
#第三個坑 .NET Core 2.0 MVC 的試圖檔案
# 從2.0開始貌似試圖文件被直接打包成了dll文件,不在像傳統的mvc一樣發布後還是shtml文件,而是被編譯成了dll文件命名規則是項目名稱.PrecompiledViews.dll
第四個坑 .NET Core 引用DLL問題
我們以前開發總是把一些常用的某些功能性的單獨做成一個類別庫編譯成dll 後供專案使用,但這樣做好像在.NET Core的專案中行不通
起初我寫了一個公共的類別庫,在解決方案裡面又新增了一個類別庫,去引用公共類別庫的項目,這樣做的時候並沒有什麼異常,但當我啟動另外一個vs創建一個新的解決方案添加項目在去引用公共類別庫的dll後在vs裡面寫程式碼都很正常,程式碼提示也都有
但是一按F5 調試就出來坑了,報未能找到類型或命名空間
解決方案是把公共類別庫打包成NuGet套件
然後透過管理NuGet套件加入引用,但很多情況下一些類別庫我並不想都放到nuget.org上面,可以把產生的nuget套件放置Microsoft Visual Studio Offline Packages 離線套件裡面
#放到Microsoft Visual Studio Offline Packages對應的目錄即可
#
以上是.NET Core中遇到的一些坑的圖文詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!