將 Net 項目升級 Core項目經驗:(三)遷移後的Net Standard版本的類庫測試和多平臺項目實測

遷移後的Net Standard版本的類庫測試和多平臺項目實測

按照第一步的方法,添加一個Net Core的MSTest項目,然後將原來的測試項目下的代碼遷移到新測試 項目中,然後引用新的Beyondbit.Framework Core類庫。然後運行單元測試項目和集成測試項目即可。
測試當中單元測試下項目沒有問題,一遍就過了。但是在集成項目中遇到了一個挺嚴重的問題。App.Config的讀取BUG。

App.config 讀取BUG

實測使用System.Configuration.ConfigurationManager 4.4.1 版本讀取配置時,在Web項目或者控制檯應用,都可以順利讀取。但我在vs2017創建的MSUnit的測試項目運行集成測試時,讀取失敗了。目前還沒找到方法解決,後續我會反饋BUG在github上。

目前我只能建立一個Net Core的控制檯程序來集成測試,在測試過程遇到了兩個問題,都是和SQL SERVER 相關的。

SQL 鏈接

異常:The keyword 'connection reset' is not supported on this platform

<add name="mainDB"
         connectionString="Database=DemoDB;Server=.;Uid=sa;Pwd=111qqq!;Enlist=true;Pooling=true;Connection Reset=false;Trusted_Connection=no;Connect TimeOut=3000;"
         providerName="System.Data.SqlClient" />

看上面數據庫鏈接字符串總Connection Reset=false; 刪掉這個即可。

異常:Enlisting in Ambient transactions is not supported.

這個異常可以看github net core的反饋 提到了在4.5預覽版本已經修復了,實測可以。在寫這篇文章時,我用的 System.Data.SqlClient(4.4.3)。

發佈Net Core 程序

控制檯程序

VS 2017 + win 10 + Net Core 2.0 寫的程序,F5調試程序是沒有問題的,但是如果想不通過VS2017來運行程序,按照Net Framework,一般我們Build過後,去bin目錄找debug或release目錄下,找到對應的exe文件運行即可。但是Net Core 生成,在bin\Debug文件下,是不會生成.exe文件了。這個和NetFramework 完全不同
Net Core 下需要發佈纔可以做到:
按照微軟的文章《使用 Visual Studio 2017 發佈 Hello World 應用程序

測試結果

WIN 10 系統

image

Mac OS 10.13.4 High Sierra系統

image

總結
至此,以上是遷移Beyonbit.Framework從 Net Framework 3.5 到 Net Core\Standard上的經歷。總共花費了2天的時間。後續測試更全面一點,會有更多的運行錯誤,到是我會根據情況補充到文章裏面。以及後續會遷移更復雜的業務系統,遇到的問題,也會補充到文章裏。
這三篇文檔是我花了半天時間寫的,希望能幫助到有需要的人,同時,在文章裏面都貼了一些文章鏈接,很感謝這些朋友,裏面有一下些鏈接,不知道是不是原文,如有轉帖的,可以私信給我,我會改正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章