溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

visual studio code調(diào)試.net core 2.0程序

發(fā)布時(shí)間:2020-07-08 09:08:02 來(lái)源:網(wǎng)絡(luò) 閱讀:2979 作者:桂素偉 欄目:編程語(yǔ)言

最近在試.net 2.0 Preview時(shí),在VS2017中相對(duì)麻煩,現(xiàn)說(shuō)也怕把生產(chǎn)環(huán)境搞壞,于是就想在vs code下試試。

首在安裝.net core 2.0的SDK和Runtime,這里下載

https://github.com/dotnet/core/blob/master/release-notes/download-archives/2.0.0-preview1-download.md

再安裝vs code(我安裝的是中文版),這里下載

https://code.visualstudio.com/?wt.mc_id=DX_841432

打開vs在擴(kuò)展中安裝C#擴(kuò)展

visual studio code調(diào)試.net core 2.0程序

安裝完成后,打開cmd

用dotnet new console創(chuàng)建一個(gè)項(xiàng)目(首先創(chuàng)建好項(xiàng)目文件夾哦)

dotnet restore一下

dotnet run跑了起來(lái)

在vs code中打開文件夾,選擇上面創(chuàng)建的文件夾,并雙擊Program.cs,這時(shí),vs code會(huì)安裝一個(gè)OmniSharp和一個(gè).Net Core Debugger,這兩個(gè)安裝相對(duì)較慢(可能在國(guó)內(nèi)原因吧)

接下來(lái)在Program.cs中

加入如下代碼(測(cè)試DataTable的):

visual studio code調(diào)試.net core 2.0程序

然后在vs code中restore

這樣就開始調(diào)試了,調(diào)試肯定是失敗的,因?yàn)榇a中用到ado.net連接sql server數(shù)據(jù),所以在.csproj中添加如下節(jié)點(diǎn):

 

 <ItemGroup>

   <PackageReference Include="System.Data.SqlClient"Version="4.4.0-preview1-25305-02" />

 </ItemGroup>

 

重新restore,然后再次調(diào)試 ,如果你的數(shù)據(jù)中有漢字,這時(shí)會(huì)發(fā)現(xiàn)在在調(diào)試控制臺(tái)上轉(zhuǎn)出有亂碼,怎么會(huì)事?

visual studio code調(diào)試.net core 2.0程序

再返回cmd下測(cè)試(或在vs code的終端測(cè)試),都正常


visual studio code調(diào)試.net core 2.0程序


visual studio code調(diào)試.net core 2.0程序



看來(lái)正常,之前1.1版確實(shí)漢字也會(huì)有亂碼,用上

System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);

就會(huì)解決掉,但本例中不一樣,首先在cmd下沒(méi)有亂碼,我試過(guò)用上這個(gè)方法,調(diào)試控制臺(tái)上也是亂碼,于是就東問(wèn)西找,也沒(méi)有找到有效的解決方案(我的google能力還有待提高呀),于是只能自己想著解決了,亂碼肯定是編碼不匹配,這個(gè)問(wèn)題說(shuō)明設(shè)計(jì)控制臺(tái)與終端的編碼輸出不一樣,終端和cmd一個(gè)道,應(yīng)該問(wèn)題出在vs code輸入到控制臺(tái)上的問(wèn)題,幸好我c#控制臺(tái)功底好(),想到一個(gè)輸出流,然后就找到了

Console.OutputEncoding = System.Text.Encoding.UTF8;

果然問(wèn)題解決,轉(zhuǎn)了半天cmd可以顯示漢字和vs code “文件”-“首選項(xiàng)”-“設(shè)置”誤導(dǎo)了我,找了半天怎么設(shè)置調(diào)試控制臺(tái)來(lái)改變編碼,原來(lái)在程序中控制即可。


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI