<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-19396308</id><updated>2026-09-28T21:25:01.645+08:00</updated><category term="PHP"/><category term="Laravel"/><category term="Windows"/><category term="VSCode"/><category term="Visual Studio Code"/><category term=".NET"/><category term="Git"/><category term="ASP.NET Core"/><category term="Visual Studio 2022"/><category term=".NET Core"/><category term="ASP.NET MVC"/><category term="SQL Server"/><category term="Linux"/><category term="MSSQL"/><category term="Silverlight"/><category term="Mac"/><category term="Mac OS X"/><category term="ASP.NET"/><category term="PHPUnit"/><category term="TypeScript"/><category term="Visual Studio"/><category term="howto"/><category term="Composer"/><category term="Docker"/><category term="Homebrew"/><category term="IIS"/><category term="MySQL"/><category term="Node.js"/><category term="macOS"/><category term="C#"/><category term="Ubuntu"/><category term="Visual Studio 2017"/><category term="npm"/><category term="ASP.NET Core MVC"/><category term="Azure"/><category term="Eclipse"/><category term="VirtualBox"/><category term="Vue.js"/><category term="Windows Server"/><category term="Windows10"/><category term="jQuery"/><category term="Entity Framework"/><category term="HTML"/><category term="Laravel-Elixir"/><category term="TDD"/><category term="VB.NET"/><category term="Vim"/><category term="Visual Studio 2013"/><category term="Visual Studio 2015"/><category term="WebAPI"/><category term="Zen Coding"/><category term="nginx"/><category term="AI"/><category term="Apache"/><category term="BDD"/><category term="Bash"/><category term="Behat"/><category term="BrowserSync"/><category term="CentOS"/><category term="EF Core"/><category term="Firefox"/><category term="Flash"/><category term="IE"/><category term="JavaScript"/><category term="MSTest"/><category term="PEAR"/><category term="PhpStorm"/><category term="PowerShell"/><category term="SEO"/><category term="Tips"/><category term="Vite"/><category term="XDebug"/><category term="webpack"/><category term="滲透測試"/><category term=".NET6"/><category term="API"/><category term="ASP.NET 5"/><category term="ASP.NET Core 2.0"/><category term="ActionScript 3"/><category term="Adminer"/><category term="Android"/><category term="Android Studio"/><category term="Angular 2"/><category term="Blend2"/><category term="CSS"/><category term="Cmder"/><category term="Command"/><category term="Compass"/><category term="Copilot"/><category term="Cubumber"/><category term="DeepSeek"/><category term="Emmet"/><category term="Entity Framework Core"/><category term="Express"/><category term="Expression Web"/><category term="Extensions"/><category term="Gadget"/><category term="Homestead"/><category term="Hyper-V"/><category term="IIS Express"/><category term="JSON"/><category term="Kotlin"/><category term="Laravel Mix"/><category term="Laravel-Package"/><category term="MIME"/><category term="MSChart"/><category term="MSW"/><category term="MacBook"/><category term="Markdown"/><category term="NetBeans"/><category term="PDF"/><category term="PHP Framework"/><category term="RESTful API"/><category term="References"/><category term="ReportViewer"/><category term="Retina"/><category term="SQLite"/><category term="SVN"/><category term="Sass"/><category term="Selenium"/><category term="Shell"/><category term="Source Control"/><category term="SpecFlow"/><category term="Sublime Text"/><category term="Sync"/><category term="Tools"/><category term="Vagrant"/><category term="Visual Studio 2019"/><category term="Visual Studio for Mac"/><category term="Vue"/><category term="Vue CLI"/><category term="WCF"/><category term="WSL"/><category term="WebForm"/><category term="Windows Terminal"/><category term="Xcode"/><category term="Yarn"/><category term="debug"/><category term="iPad"/><category term="iPhone"/><category term="iTextSharp"/><title type='text'>{oc.tech.notes} 技術誌</title><subtitle type='html'>技術誌記錄學習或專案執行當下遇到的問題及解決方案，方便日後翻查，益人益己！</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://devmanna.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>287</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-19396308.post-5955548606979604370</id><published>2026-03-09T19:56:00.350+08:00</published><updated>2026-05-05T22:50:07.084+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><title type='text'>用 GitHub Copilot 程式開發小試身手心得 </title><summary type="text">### 前言

透過 Coding Agent 完全不動手寫 Code 來開發，最初都會卡在起手式，不知道從何下手。

剛好前陣子手邊有一個小專案可以拿來試試，就用它來分享我的漸進開發心得!

### 開發環境

- Windows 10
- VS Code + GitHub Copilot Chat
- .NET 10

目標是建立一個 .NET 的 Console App，讀取 Excel 資料，依資料擷取資訊，再輸出成 Excel 結果。

### 第一階段: 正常開發模式

整個 App 是照著我原本的開發流程來走，還沒完全讓 Coding Agent 介入的開發模式。

因為完整的功能需求及流程是手刻完成，每行程式都是有 review 過的，在專案中會使用到的套件也都很明確。

我把這個手刻的版本當成我要跟 AI 協作過程的成果依據來開始作試驗。

### 第二階段: Vibe</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/5955548606979604370' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/5955548606979604370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/5955548606979604370'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2026/03/github-copilot.html' title='用 GitHub Copilot 程式開發小試身手心得 '/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-2293301884896892779</id><published>2026-03-01T20:40:00.002+08:00</published><updated>2026-03-01T20:40:41.727+08:00</updated><title type='text'>[Copilot] 近期驚呼有感之 AI 時代一起協作程式開發</title><summary type="text">markdown

2026 年也才剛過兩個月，近期與 AI 的協作開發有很大的改變。

去年此時，還只是跟 AI 聊聊天，生成一些需要的程式片斷，或者在 IDE 讓 AI 做程式補全。

去年底開始到今年初，各家 AI 推陳出新，快到讓人有種追著跑的感覺。

各式各樣的 AI 工具接連推出，現在程式開發者或多或少都有用過 Claude Code、OpenAI Codex 和 GitHub Copilot 其中之一的 AI 工具吧?!

我個人本身都是用 GitHub Copilot 來協作開發，去年主要都以程式補全為主，而今年開始接觸試著 Vibe Coding 到 SDD 開發，有感 AI 發展的神速。

也許去年沒有緊追 AI 也不算壞事，大家都在找方法，找與 AI 更好的協作方式。

而今年開始，似乎摸索出與 AI 有著更好的協作雛形，不論是不懂程式的小白或是懂程式的工程師。

</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/2293301884896892779' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/2293301884896892779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/2293301884896892779'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2026/03/copilot-ai.html' title='[Copilot] 近期驚呼有感之 AI 時代一起協作程式開發'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC0MQVZECZCzNUH3k4_k7vuKUG_RAOgia-KKEap8_weP1dGV_KxGvDyZWAWXGmNfmRvD4ZOAT38gRXdqTePKztqRm71gW3W71drRkOLm5zxf4UCjOAlOXTpXx74QL4yGQAA1Q0OgoV2ehCyTAiBhpG2vZw29yxeMybagaYQ9A57N_bKWbPgjn5vg/s72-w523-h640-c/img_20260301-20001.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-3534434021401760033</id><published>2025-07-09T20:44:00.002+08:00</published><updated>2025-07-14T18:36:22.601+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Windows"/><title type='text'>[Windows] 系統更新後，無法正常使用倉頡輸入法</title><summary type="text">markdown

今日 Windows 11 系統更新 (KB5062553) 

發生無法正常使用倉頡輸入法

解法：

1. 移掉更新版本 KB5062553
2. 變更輸入法相容性，開啟 使用舊版的微軟倉頡

因為是在更新系統後才發生的，重開機後立刻遇到無法打字，直覺就是更新造成的問題。

結果我不孤單，上網查了一下，還是有蠻多人跟我遇到同樣症狀，我採用解法 2，改相容性後就正常了



### 設定路徑

設定路徑太複雜，無法一步到位，以下是詳細的設定路徑：

1. 設定 / 時間與語言 / 語言與地區 (或是在工具列右下角的 &quot;倉&quot; 點開選單，選擇 &quot;更多鍵盤設定&quot;)
2. 選擇 &quot;繁體中文(台灣)&quot; (點右方 ... 開啟其他選項，選擇 &quot;語言選項&quot;)
3. 選擇 &quot;微軟倉頡&quot; (點右方 ... 開啟其他選項，選擇 &quot;鍵盤選項&quot;)
4. 移到最下方 &quot;相容性&quot; / 使用舊版</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/3534434021401760033' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/3534434021401760033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/3534434021401760033'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2025/07/howto-fix-windows-cangjie-input-issue.html' title='[Windows] 系統更新後，無法正常使用倉頡輸入法'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha40ctEcRwENL1dDfDh5weNLV18qsLgBNzw08zDpAfAdNANa5qwgUFoKeUArxg59W0-l9bUyezdReVuEmAhVDc85nKz5gYhffwesAuoPeus-aj5rIOZVdtHp7fRL8pwOZu0hXXhlornQ8fQlsgmUQnXblZ7WeCqj8_8y0Ab_2TR-MpyqGUye7A5Q/s72-c/img_20250709-20001.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-6709006092768698771</id><published>2025-04-06T17:52:00.001+08:00</published><updated>2025-04-06T17:52:38.265+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term="EF Core"/><title type='text'>[EF Core] 解決 Decimal 類型出現 No store type was specified for the decimal property 警告訊息</title><summary type="text">markdown

### 版本

- .NET 8
- EF Core 9

### 問題

在 EF Core 使用 decimal 類型的屬性時，一直跳出 No store type was specified for the decimal property 的警告訊息

### 解決方法

在屬性上方加上 [Precision(18, 2)]

```cs
[Precision(18, 2)]
public decimal Price { get; set; }
```

&gt; 需要 .NET EF Core 6 以上的版本才支援

### 參考

- MS Learn - PrecisionAttribute Class
- Decimal precision and scale in EF Code First</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/6709006092768698771' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/6709006092768698771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/6709006092768698771'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2025/04/ef-core-no-store-type-was-specified-for-the-decimal-property.html' title='[EF Core] 解決 Decimal 類型出現 No store type was specified for the decimal property 警告訊息'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-5154595990257287154</id><published>2025-02-21T16:34:00.001+08:00</published><updated>2025-02-21T16:34:22.479+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET Core"/><category scheme="http://www.blogger.com/atom/ns#" term="Docker"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><title type='text'>[ASP.NET Core] 解決如何從 Docker Container 連至本機的 SQL Server</title><summary type="text">markdown

### 問題

在 Visual Studio 開發 ASP.NET Core 網站以 IIS Express 啟動時可正確連線 SQL Server 的資料庫。

近期改以 Docker 來啟動網站時，出現以下錯誤訊息：

SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/5154595990257287154' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/5154595990257287154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/5154595990257287154'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2025/02/howto-aspnet-core-docker-container-connect-to-localhost-sql-server.html' title='[ASP.NET Core] 解決如何從 Docker Container 連至本機的 SQL Server'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-3406741868999637254</id><published>2025-01-30T23:27:00.003+08:00</published><updated>2025-01-30T23:27:34.895+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="DeepSeek"/><title type='text'>[AI] 如何在本地機器使用 DeepSeek-R1 模型</title><summary type="text">markdown

### 前言

AI 話題這幾年一直話題不斷，而前一陣子 DeepSeek 的聲量突然上升了不少，好像不研究一下不行。

今天就花了些時間，研究如何在本地執行 DeepSeek-R1 模型。

### 安裝步驟

1. 安裝 Ollama
2. 使用 DeepSeek-R1 模型
3. 執行 Open-WebUI



### 安裝 Ollama 

下載 Ollama (https://ollama.com)

不管是 macOS, Linux, 或是 Windows，都有提供相應的安裝程式



### 使用 DeepSeek-R1 模型 

DeepSeek-R1 (https://ollama.com/library/deepseek-r1)

可選用你想要的規模模型 (1.5b, 7b, 8b, 14b, 32b, 70b, 671b)

目前先選擇預設的 </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/3406741868999637254' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/3406741868999637254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/3406741868999637254'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2025/01/howto-use-deepseek-r1-in-local-machine.html' title='[AI] 如何在本地機器使用 DeepSeek-R1 模型'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZlfMiZ18iE5CLkVZ_5x7iyBsF5Sev-YMtkSWQAYPYEqiiEyJ37fLRKu2W9o2ctHp_fvK5bc7H7Dur4yIb0eZJpiV-1_ERKK0lY-w0D1QH3nvoHVUTFKwQHmqTRNMIIDTXRJntNRhkqER1IQA-U29VJ8_Nt1OazuXE-fnHor33DaK2J2h8jYxZ1g/s72-c/img_20250130-22002.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-4029632132770190405</id><published>2025-01-26T14:38:00.004+08:00</published><updated>2025-01-30T23:36:41.700+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET Core"/><category scheme="http://www.blogger.com/atom/ns#" term="Docker"/><title type='text'>[ASP.NET Core] 如何在 ASP.NET Core 專案中的 Dockerfile 設定預設時區</title><summary type="text">markdown

### 問題

在開發 ASP.NET Core 專案時，Docker Image 預設的時區是 UTC，可以把時區預設定在 Asia/Taipei 嗎？

### 環境

- Windows 11
- Visual Studio 2022 (v17.12.4)
- ASP.NET Core (.NET 8)

### 解決方法

在 Dockerfile 的 base 上加一段 `ENV TZ=Asia/Taipei`

(有試過加在 final 上，但是在 Visual Studio 開發時並不會正確載入，發佈到 Azure Web App for Containers 確認是有正確載入時區的)

而且 Image 要選 `dotnet/aspnet:8.0` 不要選 `dotnet/aspnet:8.0-jammy-chiseled` (不能因為佔空間才選它，</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/4029632132770190405' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/4029632132770190405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/4029632132770190405'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2025/01/howto-set-default-timezone-in-aspnetcore-dockerfile-and-azure-app-service.html' title='[ASP.NET Core] 如何在 ASP.NET Core 專案中的 Dockerfile 設定預設時區'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-1774477664613451542</id><published>2025-01-24T15:16:00.001+08:00</published><updated>2025-01-24T15:33:10.021+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET Core"/><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="Docker"/><title type='text'>[Azure] ASP.NET Core 專案部署到 Web App for Containers 問題除錯心得</title><summary type="text">markdown

### 前言

因為新專案要求要用 Docker，本地開發端的問題通常不大，開專案也都有 Template，往往都是實際要部署上線時會遇到一些狀況。

趁著記憶猶新，整理一下部署心得

### 開發環境

- Windows 11
- Docker Desktop v4.37.1
- Visual Studio 2022 (v17.11.x -- 原版本忘了，因部署 Bug 問題，後來升級到 v17.12.4)
- ASP.NET Core Web App (Model-View-Controller) 專案
- .NET 8.0

### 選擇部署到 Azure 的服務

將專案部署到 Azure 上，我選擇的服務如下：

- Azure Container Registry (ACR)
- Azure App Service (Web App for </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/1774477664613451542' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/1774477664613451542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/1774477664613451542'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2025/01/howto-deploy-aspnet-core-to-azure-web-app-for-containers.html' title='[Azure] ASP.NET Core 專案部署到 Web App for Containers 問題除錯心得'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-4303492075063545866</id><published>2025-01-23T18:35:00.001+08:00</published><updated>2025-01-23T18:35:59.686+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET Core"/><category scheme="http://www.blogger.com/atom/ns#" term="Docker"/><title type='text'>[ASP.NET Core] 解決 ASP.NET Core 在 Linux Container 出現無法載入 libSkiaSharp 相依性問題</title><summary type="text">markdown

### 前言

一直以來開發的 ASP.NET Core 專案都是在 Windows 環境執行。最近才開始接觸開發 ASP.NET Core 專案執行於 Docker Container 的開發環境，馬上就遇到處理圖片的問題。

在 Windows 的環境下處理圖片會用到 `System.Drawing.Common`，但在 Linux 環境下是不支援的。所以在 Linux 下的圖片處理改採用 `SkiaSharp` 的套件。

SkiaSharp 這個套件在 Windows 及 Linux 都可以用，在 Windows 的開發環境已有測試套過可以正常運作，沒想到在 Linux 環境下還是噴錯了。

### 環境

- Docker Container (預設 ASP.NET Core 專案用的 base 我改用 `aspnet:8.0-jammy-chiseled`</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/4303492075063545866' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/4303492075063545866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/4303492075063545866'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2025/01/howto-fix-aspnetcore-linux-libSkiaSharp-issue.html' title='[ASP.NET Core] 解決 ASP.NET Core 在 Linux Container 出現無法載入 libSkiaSharp 相依性問題'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-2507630338825299096</id><published>2025-01-10T14:58:00.000+08:00</published><updated>2025-01-10T14:58:00.468+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Docker"/><title type='text'>[Docker] 解決 permission denied 的問題</title><summary type="text">markdown

### 問題

在 Ubuntu VM 安裝 Docker 後執行 `docker info` 遇到 permission denied 的問題

錯誤訊息:

```
ERROR: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get &quot;http://%2Fvar%2Frun%2Fdocker.sock/v1.47/info&quot;: dial unix /var/run/docker.sock: connect: permission denied
errors pretty printing info
```

### 解決方法

參考連結: [https://stackoverflow.com/</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/2507630338825299096' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/2507630338825299096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/2507630338825299096'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2025/01/howto-fix-docker-permission-denied.html' title='[Docker] 解決 permission denied 的問題'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-168312783539502696</id><published>2024-10-24T10:18:00.000+08:00</published><updated>2024-10-24T10:18:19.166+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET MVC"/><category scheme="http://www.blogger.com/atom/ns#" term="WebAPI"/><title type='text'>[ASP.NET MVC] 解決在 WebAPI 讀取不到 Session 值的問題</title><summary type="text">markdown

### 環境

- ASP.NET MVC 5
- .NET Framework 4.7.2+

### 問題

原本有個設定值以 Cookie 為存取來源, 但因應安全理由改寫成 Session 來存取, 卻在 WebAPI 存取時發生讀取不到 Session 的內容。

在 ASP.NET Core MVC 反而簡單, 只要 `services.AddSession()` 跟 `app.UseSession()` 即搞定。

目前還是有許多不是 .NET Core 的專案，記錄一下以供未來翻查用。

### 解決方法

修改 `Global.asax.cs` 檔案

```cs
protected void Application_PostAuthorizeRequest()
{
    // WebApi SessionState
    bool </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/168312783539502696' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/168312783539502696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/168312783539502696'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2024/10/aspnet-mvc-webapi-session.html' title='[ASP.NET MVC] 解決在 WebAPI 讀取不到 Session 值的問題'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-6211258326868286307</id><published>2024-06-18T01:46:00.004+08:00</published><updated>2024-06-18T03:39:49.070+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET Core MVC"/><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET MVC"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="WebAPI"/><title type='text'>[C#][WebAPI] Json.NET / System.Text.Json 序列化物件中忽略 null 值的屬性</title><summary type="text">markdown

近期遊走在 ASP.NET MVC 5 / Web API 2 以及 ASP.NET Core MVC (.NET) 的專案中

對於由 API 讀取進來的物件在 .NET Framework 與 .NET 下處理的方式不同, 需要記錄一下以便日後翻查


場景需求

使用場景是把接收進來的物件內容轉換做一個清洗，只要從 Web API 接進來的物件屬性值為 null 的都不保留

例如: 有一個 Log 物件如下

```C#
var log = new Log {
  Timestamp = &quot;2024-06-16T09:22:01.5120098Z&quot;,
  Level = &quot;Information&quot;,
  Message = &quot;This is test message&quot;,
  Exception = null
};
```

那麼經過清洗過後的字串內容就不會包含</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/6211258326868286307' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/6211258326868286307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/6211258326868286307'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2024/06/how-to-ignore-property-with-null-value-json-net.html' title='[C#][WebAPI] Json.NET / System.Text.Json 序列化物件中忽略 null 值的屬性'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-7891255777952567515</id><published>2024-03-31T22:39:00.101+08:00</published><updated>2024-03-31T23:55:18.466+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET Core"/><category scheme="http://www.blogger.com/atom/ns#" term="Vite"/><title type='text'>[.NET] 如何在 ASP.NET Core 的專案整合 Vite 開發</title><summary type="text">markdown

### 前言

之前大多使用 Laravel 搭配 Vite 來做前端資源整合開發，由於 Laravel 生態系非常完整，也不太需要多做太多設定即可整合完成。

近期在 ASP.NET Core MVC 的專案使用 Vite 開發前端資源檔案，使用上卻不是那麼上手。尤其是在開發時期載入檔案的部分，在 Laravel 用 @vite 卻可輕易完成，便尋尋覓覓找到相近的整合套件。



### 環境

- Visual Studio 2022 (v17.9.2)
- ASP.NET Core (.NET 8)
- Package: [Vite.AspNetCore](https://github.com/Eptagone/Vite.AspNetCore)
- Vite 5.2
- Vue 3.4

### 專案開發步驟

1. 建立 ASP.NET Core Web </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/7891255777952567515' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/7891255777952567515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/7891255777952567515'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2024/03/howto-integrate-vite5-to-aspnetcore.html' title='[.NET] 如何在 ASP.NET Core 的專案整合 Vite 開發'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-3351819086094933725</id><published>2024-03-16T03:06:00.003+08:00</published><updated>2024-03-16T19:17:10.305+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MSW"/><category scheme="http://www.blogger.com/atom/ns#" term="Vite"/><category scheme="http://www.blogger.com/atom/ns#" term="Vue"/><title type='text'>[Vite] 前端開發模擬 API 的好物 Mock Service Worker (MSW)</title><summary type="text">markdown

### 前言

網站開發階段，常常會遇到前端開發時需要模擬呼叫 API 的情境。

用 json-server 來起一個服務是方便測試，但是跟網站是分開的 server，可能會因為忘記把服務開啟而呼叫失敗。

在不用後端介入的情境下，前端用 Vite 整合 Mock Service Worker (MSW) 模擬客製回應是個不錯的選擇。



### 環境

- Vite 5.x
- Vue 3.4
- MSW 2.x
- Axios 1.x

建立 Vite 專案 (選 Vue 為本篇範例)

```bash
npm create vite@latest
```

切換至專案目錄，增加 msw 及 axios

```bash
npm install msw@latest --save-dev
npm install axios --save-dev
```

前端</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/3351819086094933725' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/3351819086094933725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/3351819086094933725'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2024/03/vite-api-mock-service-worker-msw.html' title='[Vite] 前端開發模擬 API 的好物 Mock Service Worker (MSW)'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFJK0tmcDmlOXTJeWx2zSGRQLg6xo7pBv5qp34F_ohUP3EFakizOKkZRbn9XfNGr_Kiwy-XzicX7xyXyxHWm9EDlPFEQXkzsu9s60CqKmd1xmxgkGOtdgwyOK569nJZjqmn1YH5n88EPWSBMUJ9yswR66Mag6058707BbyT2TIw_2MmRUcDkIAEA/s72-c/img_20240316-02001.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-7837194426306404640</id><published>2024-02-10T16:34:00.001+08:00</published><updated>2024-02-10T16:34:17.751+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2022"/><title type='text'>[Visual Studio 2022] v17.8 新功能 - 字串搜尋取代時保留原始大小寫格式</title><summary type="text">markdown

### 前言

在過去要搜尋文字取代時，不同的大小寫可能要分批做幾次取代，以保留原始的英文字母大小寫。

在 VS2022 v17.8 的新功能就可以一次辦到囉！多省做幾次取代步驟的時間。

### 環境

- Visual Studio 2022 v17.8.6

### 實作

原始的文字內容如下



用快速鍵 Ctrl+H 做取代動作，點選 AB 的按鈕做 Case 保留



第一組: 只取代 demo




第二組: 取代 demohttp



是不是很方便呀?
</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/7837194426306404640' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/7837194426306404640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/7837194426306404640'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2024/02/vs2022-v178-case-preserving-find-and-replace.html' title='[Visual Studio 2022] v17.8 新功能 - 字串搜尋取代時保留原始大小寫格式'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhulBc5aXIBRDx_4ccNdc0K3r72zm3cUTnkKa6yAM_Zhx4lsvvDmLmrqZ-drwTuoEAWZksjO_IbpUk-UAxFdQ2ZqhZD6MSQ4B62rSOMdaB2rPDB4ybm-SVXfgmYCsbxwgmA25pOgETDIJ6sTeT9HZ6pDblNuqvRvA9dX3Dt_BNGumueBGeMNMIOEA/s72-c/img_20240210-16001.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-1514958372142817259</id><published>2024-02-09T15:48:00.002+08:00</published><updated>2024-02-09T16:25:58.568+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="RESTful API"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2022"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio Code"/><title type='text'>[RESTful API] 如何在 Visual Studio 2022 及 VS Code 使用 .http 檔案文件化測試 API 執行結果</title><summary type="text">markdown

### 前言

通常在測試 API 的工具中，Postman 或 Insomnia 都是很方便的 API 測試圖形介面工具。

只是各工具有各自的保留文件格式，若能把測試 API 的資料文件化並做版控，又能夠減少散落在各處的翻查不易的問題。

因為 Visual Studio 2022 已支援能夠在 IDE 開啟 .http 文件，並直接可做測試看結果，而且功能齊全，文字檔案又能做版控。

但筆者不是只有 .NET 的專案，還有其他程式語言的專案，也會使用 Visual Studio Code 來撰寫，所以若能讓 .http 文件能跨專案跨工具來執行並管理就更棒了。

在本文中分別介紹在 Visual Studio 2022 及 Visual Studio Code 如何使用 .http 來執行測試 RESTful API。



### 環境

- Visual </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/1514958372142817259' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/1514958372142817259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/1514958372142817259'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2024/02/howto-test-restful-api-using-http-file-on-vs2022-vscode.html' title='[RESTful API] 如何在 Visual Studio 2022 及 VS Code 使用 .http 檔案文件化測試 API 執行結果'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJi2zMbNb9hkb0wi3EPL4CLzA7our4mYEA4Y8z2-3bvo1oIwxZj6rjPVEw_gZjdxev5G3A5aO4pORwCkLk41RLIDB_7Qip7c7vrEx4BwMsx064x_S359hRHJsfUSJc0D-XvVfFtqEMmuBHCKSmSI4yitoZidFAVKxr1CTsawh1VkeBIkPBLiqpJQ/s72-c/img_20240209-14011.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-1679190553774274644</id><published>2024-02-09T02:12:00.002+08:00</published><updated>2024-02-09T16:29:08.561+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WSL"/><title type='text'>[WSL] 如何在 Windows 11 安裝 WSL</title><summary type="text">markdown

趁著換新電腦，安裝主機開發環境，記錄一下安裝 WSL 的步驟 (Windows 11 之後的預設 WSL 版本已為 WSL 2)

### 準備

目標的作業系統為 Windows 11

先確認至 控制台 &amp;gt; 程式和功能 &amp;gt; 開啟或關閉 Windows 功能

勾選 &quot;Windows 子系統 Linux 版&quot; 以及 &quot;虛擬機器平台&quot;，確定後並重新開機





### 安裝 WSL - 以 Ubuntu 為例

在上個步驟僅是開啟 WSL 功能，但尚未安裝任何 Linux 發行版本

以 系統管理員 身份開啟 PowerShell 來執行指令

1. 先確認目前的 WSL 狀況

列出所有安裝的版本 (以下顯示為尚未安裝何任發行版本)

```
wsl -l -v
```



2. 查詢線上提供可以安裝的發行版本

```
wsl -l -o
```
</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/1679190553774274644' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/1679190553774274644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/1679190553774274644'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2024/02/howto-install-wsl-on-windows11.html' title='[WSL] 如何在 Windows 11 安裝 WSL'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz57YmWbOXPcD3stCbQgWNQVIZZsXK8LQq9x8pBnfD51N0G-0b4RdvhNYl1jgKYCWU9ZMmkyjxXb96F6WLYVnwnygRmUDWqFSqafQCYBqk9bDlCOH2CE2tXtzx0pAlhD71iX6yRV8M8rutOucrvSG2nC_i1vF57gbLrLE1d5UGYg0vHCu0tvFfkg/s72-w640-h392-c/img_20240126-14001.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-1601377057909279958</id><published>2023-09-16T22:30:00.068+08:00</published><updated>2024-02-09T02:42:02.336+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="howto"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows"/><title type='text'>如何在 Windows 安裝及格式化新磁碟機</title><summary type="text">markdown

久違的硬體升級，終於把六年的老機給換新機，手動加了一條 2TB 的 SSD。記錄安裝及格式化新磁碟機的步驟。

### 磁碟管理

搜尋 &quot;建立及格式化硬碟及磁碟分割&quot;

1. 在 磁碟管理 介面會看到 &quot;不明 未初始化&quot; 的磁碟，這就是準備要進行配置的磁碟





2. 在未配置的磁碟機上按右鍵 &quot;新增簡單磁碟區&quot;



3. 跑 新增簡單磁碟區精靈 &amp;gt; 指定磁碟區大小 (我要配置整顆，即填最大值)



4. 指派磁碟機代號或路徑 (依需求指定代號)



5. 磁碟分割格式化 (採用以下預設值即可)



6. 完成配置

</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/1601377057909279958' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/1601377057909279958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/1601377057909279958'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2023/09/howto-install-new-drive-and-format-on-windows.html' title='如何在 Windows 安裝及格式化新磁碟機'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5Vir9Nu_R9Syz00A5qidqQuLyMjsXKqL8ZoKXk4HZA_OfNYdMlgQoAD6flqPregVQNihoWbuhRqvL0-FqBrAwIqvGwvH2xMDaIk-c_RjAWBDlfUkSTpsik6QOGLrd5NbRBjKAB-2yf_CX0lic2Z-79xBC6Irtj0cJ37WGYgv6_PxM3XhtTpTsEg/s72-c/img_20230916-16001.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-528678832460440383</id><published>2023-05-20T20:19:00.003+08:00</published><updated>2023-05-20T20:20:17.508+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="EF Core"/><category scheme="http://www.blogger.com/atom/ns#" term="Entity Framework Core"/><title type='text'>[EFCore] 執行 Update-Database Migration 時遇到連線資料庫發生憑證錯誤</title><summary type="text">markdown

### 開發環境

- Visual Studio 2022 v17.6
- ASP.NET Core MVC (.NET 6)
- Entity Framework Core 7.x

### 問題

在執行 Update-Database 的 Migration 指令時出現資料庫憑證錯誤的訊息，使得更新資料庫失敗。 

錯誤訊息如下：

```
A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - 此憑證鏈結是由不受信任的授權單位發出的。)
```

在本機端開發第一次遇到連線字串需要憑證的問題，過往是連遠端資料庫才會有憑證</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/528678832460440383' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/528678832460440383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/528678832460440383'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2023/05/efcore-update-database-migration.html' title='[EFCore] 執行 Update-Database Migration 時遇到連線資料庫發生憑證錯誤'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-1331279612890010218</id><published>2023-03-19T20:58:00.000+08:00</published><updated>2023-03-19T20:58:07.656+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="TypeScript"/><category scheme="http://www.blogger.com/atom/ns#" term="webpack"/><title type='text'>[TypeScript] 解決 Webpack v4 升級到 v5 遇到 tsc 編譯時出現 Cannot find name &#39;Map&#39;</title><summary type="text">### 問題

繼上編解決在 webpack v4 的安全性相依成功升級後。接下的任務是進一步將 webpack 的版本由 v4 升到 v5。

升級前環境：

```json
&quot;devDependencies&quot;: {
    &quot;@types/node&quot;: &quot;^16.0.0&quot;,
    &quot;ts-loader&quot;: &quot;^8.4.0&quot;,
    &quot;typescript&quot;: &quot;^5.0.2&quot;,
    &quot;webpack&quot;: &quot;^4.46.0&quot;,
    &quot;webpack-cli&quot;: &quot;^4.10.0&quot;
  }
```

把 webpack 及 webpack-cli 升級到 5.x，並同步升級 ts-loader 至 9.x 版本

執行 tsc 時出現 Cannot find name &#39;Map&#39; 的問題



### 解決方法

除了更新 webpack, webpack-cli, </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/1331279612890010218' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/1331279612890010218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/1331279612890010218'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2023/03/typescript-webpack-upgrade-v4-to-v5-tsc-cannot-find-name-map.html' title='[TypeScript] 解決 Webpack v4 升級到 v5 遇到 tsc 編譯時出現 Cannot find name &#39;Map&#39;'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkdnoGuNOmOVHvDuuYfgvI58C76bTnLwnTV16BbnDAXhUs8Sd1IeKfnqHhxaxyKKFmJRa3IOcSPrcce_H9S5aH9hDlX514h6fqvlUjX8BSCTGTys73ssaUnUAHRFIsmET798IvenRXZESUMx-UjXw7EFuuz03usTLLbYOtKYCB7KkLrwJFPTs/s72-c/Screenshot%202023-03-19%2020.20.00.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-6330051544155277331</id><published>2023-03-18T22:53:00.000+08:00</published><updated>2023-03-18T22:53:03.626+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="npm"/><category scheme="http://www.blogger.com/atom/ns#" term="webpack"/><title type='text'>[npm] 解決 npm glob-parent 版本過舊的安全性問題</title><summary type="text">markdown

### 問題

最近在一個舊的專案採用 webpack 4.x 的版本，最近要修改檔案，要在能正常執行下，想要一併更新一下開發套件版本。

原本環境:

- typescript 3.9.5
- ts-loader 7.0.5
- webpack 4.43.0
- webpack-cli 4.9.1

執行 `npm audit fix` 之後，已修正不少套件相依版本，但仍有安全性相依版本的問題，即便依照指令再做一次 fix 的動作仍無法更新修正。

glob-parent  &amp;lt;5.1.2
Severity: high
glob-parent before 5.1.2 vulnerable to Regular Expression Denial of Service in enclosure regex - https://github.com/</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/6330051544155277331' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/6330051544155277331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/6330051544155277331'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2023/03/resolve-npm-glob-parent-dependency-issue.html' title='[npm] 解決 npm glob-parent 版本過舊的安全性問題'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd0yh-Ewsj9PpYQVKqj-o7-SAexEfA78hZKv2OpcX4au486nJBmRhXoJx3HGObJ0_T5oqBAet3OfamPL_2CJUnCcSeS2h2hzvr-MHrSyt0f1QtABUIdspo61azwg20FE65IW058K1o_ZvNXQC-qI6bZDvzUFr6MfBS_ux9P1-hJmA9G2HPXxM/s72-c/img_20230318006.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-7292497842639501880</id><published>2023-03-18T01:01:00.001+08:00</published><updated>2023-03-18T01:01:54.660+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Copilot"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2022"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio Code"/><title type='text'>程式開發者不能不知道的 GitHub Copilot</title><summary type="text">markdown

### 前言

GitHub 在 2021 六月時推出 AI 程式碼工具 Copilot。它可以幫助開發者在寫程式時提供自動完成程式建議。基於 OpenAI Codex 可即時在編輯器作用。相較於現在超及熱門的 ChatGPT，[GitHub Copilot](https://github.com/features/copilot) 是更適合開發人員使用的工具。然而 Microsoft 就在昨日還隆重介紹了 [Microsoft 365 Copilot](https://blogs.microsoft.com/blog/2023/03/16/introducing-microsoft-365-copilot-your-copilot-for-work/?WT.mc_id=DT-MVP-5002629)，要把它融入日常工作流程中，現在完全不能忽視 Copilot 了呀～</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/7292497842639501880' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/7292497842639501880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/7292497842639501880'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2023/03/developers-should-know-github-copilot.html' title='程式開發者不能不知道的 GitHub Copilot'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinQ22l9FCY3ogXKliBr6-3SLseZiX3I1FJHMXYhr_bX9Krwszp1zTHenOpMOyj9FZp8hFVjQNwrNIP521lJyBwgl_D6Tl85lmCJPIp8i-RZRobtPGNeCVhyTDrdmNZF0SbOfnUCQFGVu1FZoUbgGcEYol-nbkQUoMj1cLFaoU9VsXqijEDlvE/s72-c/img_20230317003.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-6983640942638050490</id><published>2023-02-28T00:50:00.000+08:00</published><updated>2023-02-28T00:50:32.373+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET Core"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2022"/><title type='text'>[Visual Studio 2022] v17.5 新功能 - Dev Tunnels 開發人員通道</title><summary type="text">markdown

開發網站專案，若是要暫時展示開發進度，要想各種方法把網站對外開放。不管是架在測試機，或是佈署到雲端，又或是透過 ngrok 或自架 nginx 伺服器反向代理。目前在 v17.5 版本中可以輕易達到了。

### 必要條件

- Visual Studio 2022 v17.5 版本 (Visual Studio for Mac 不支援)
- 啟用開發人員通道預覽功能
- 僅支援 ASP.NET Core 網站專案 (一個或多個)


### Dev Tunnels

開啟 Dev Tunnels 功能：Tools —＞Manage Preview Features —＞勾選 &quot;Enable dev tunnels for Web Applications&quot; (啟用 Web 應用程式的開發通道)



啟用功能後，在 Debug https 下拉，可看到 Dev </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/6983640942638050490' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/6983640942638050490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/6983640942638050490'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2023/02/visual-studio-2022-v175-dev-tunnels.html' title='[Visual Studio 2022] v17.5 新功能 - Dev Tunnels 開發人員通道'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSYxZXKvVDjtj6JTmX_JEOMzpV7_WK7_8wQG__4QqM9M40Wza75AC2DFzGzChEyIhI4iK1eOnkwY3C7gzbkv6YWVNwBqleXeD6odH5iMQHC6ySCbX3UyFg6F3QyBqEFTL2JkPuKMNnRNHLSRnuWSnuDxq6vNGIN--MIEKnJUnK8jwBUQHt8PU/s72-c/img_20230227010.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-8354389612450143067</id><published>2023-02-27T17:25:00.003+08:00</published><updated>2023-02-27T17:38:08.539+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Homebrew"/><category scheme="http://www.blogger.com/atom/ns#" term="macOS"/><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><title type='text'>[macOS] PHP 7.4 在 Homebrew 近期更新升版後發生 Library not loaded 錯誤</title><summary type="text">markdown

### 問題

在月初更新了 PHP 的版本，而最新版本來到了 PHP 8.2。近期開發的專案都以 PHP 8.1 為主，也並未發現異常。剛好最近在修改舊專案，是跑在 PHP 7.4 的版本，這時才發現無法正常運作。




### 解決方法

由於 PHP 7.4 已經不再更新，Homebrew 的 php 版本也未再針對舊版本支援，所以指向的 library 有些出入，造成運作不正常，因此近期有做版本更新或升級的朋友可能也會遇到相同問題。

查了許多資源，最後都是指向 [https://github.com/shivammathur/homebrew-php](https://github.com/shivammathur/homebrew-php) 這個解決方案

```
$ brew tap shivammathur/php
$ brew upgrade </summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/8354389612450143067' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/8354389612450143067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/8354389612450143067'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2023/02/macos-php-74-library-not-loaded.html' title='[macOS] PHP 7.4 在 Homebrew 近期更新升版後發生 Library not loaded 錯誤'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9KoBxpdnVJ-GPxTa-0QCaTA7t4-xjldMZIN0yfHx6Q4PMRUl3WeqWghCRcWcPKxkjJOECKW3i6dFTzRGmZOmnBbo2cQVbMdvDK7b7Wv3Mh4wHbfR-nJksLmk9vYUL1e3TSVdzLIpMcUyGwvSUik7vhuRP2JZfafbw6D9tdC8WKQoWbXLWq_k/s72-c/Screenshot%202023-02-22%2002.33.05.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19396308.post-7671938603670701085</id><published>2023-02-27T11:33:00.002+08:00</published><updated>2023-02-27T11:33:41.399+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2022"/><title type='text'>[Visual Studio 2022] v17.5 新功能 - Markdown</title><summary type="text">markdown

在 Visual Studio Code 已經用得很習慣的 Markdown 編輯預覽，終於也在 Visual Studio 2022 出現了。

只能說 VS Code 把編輯器功能做得太棒，養大了開發者的胃口，在編輯器都有的功能，怎麼能在地表最強 IDE 沒有呢？

搭啦~ 不用開外掛，預覽 Markdown 內建囉！

### Markdown 預覽

開啟任何 *.md 的檔案，即可看到 &quot;Preview&quot; 按鈕，點擊即在右方出現預覽內容，或是按快速鍵 Shift+F7 開啟預覽



以後不用再多開 VS Code 來編輯 Markdown 了
</summary><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19396308/7671938603670701085' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/7671938603670701085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19396308/posts/default/7671938603670701085'/><link rel='alternate' type='text/html' href='http://devmanna.blogspot.com/2023/02/visual-studio-2022-v175-markdown.html' title='[Visual Studio 2022] v17.5 新功能 - Markdown'/><author><name>onecent</name><uri>http://www.blogger.com/profile/15399125959721632863</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrl9eovXKCCnh1-aEnbev4dJMF_PAFK2oSrMXAP4-mQryre8_lTkkrfVkkg9lNUe8zPbBOKdHiBUh3WlDy4luwGukDjUQscOkDJ3GRlSwhdGnwONl-020lQbaFxrApW-I/s113/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN-VnIHPhF6Oks62salSMIhYVH5qGBNBq8zc0WFzs_3sEnr31OE9RR3h8EEcK8cr83aBjIKtPHRG8dyzZX7o2peSVg3j_Xigbgjrjp0HnYS-hc1dJV5zFaxjUo8bozEE0N69wlkFqBe5O9ju5OZclg1WB1xfBuNje_LtNeLEfyAw7TB2IAqx4/s72-c/img_20230227008.png" height="72" width="72"/><thr:total>0</thr:total></entry></feed>