<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>エディター/統合開発環境 | Kemmy&#039;s Blog</title>
	<atom:link href="https://www.kemmy-it.com/category/ide/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.kemmy-it.com</link>
	<description>データベースやプログラミング言語等の基本的事項を、図や表を使ってアウトプットしています。</description>
	<lastBuildDate>Sat, 13 Dec 2025 01:07:20 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.kemmy-it.com/wp-content/uploads/2024/09/Kemmy_vga-150x150.png</url>
	<title>エディター/統合開発環境 | Kemmy&#039;s Blog</title>
	<link>https://www.kemmy-it.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【Visual Studio 2022】が起動しない！　原因と対処法を徹底解説【初心者向け】</title>
		<link>https://www.kemmy-it.com/2025/11/01/visual_studio_fail_boot/</link>
		
		<dc:creator><![CDATA[Kemmy]]></dc:creator>
		<pubDate>Sat, 01 Nov 2025 12:02:06 +0000</pubDate>
				<category><![CDATA[Visual Studio]]></category>
		<guid isPermaLink="false">https://www.kemmy-it.com/?p=6538</guid>

					<description><![CDATA[目次 はじめにVisual Studio 2022が起動する仕組みVisual Studio 2022 が起動しないときにまず行うべき診断ライセンスキャッシュの確認SafeMode で起動できるか確認する起動ログを確認す [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number-detail toc-center tnt-number_detail border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">はじめに</a></li><li><a href="#toc2" tabindex="0">Visual Studio 2022が起動する仕組み</a></li><li><a href="#toc3" tabindex="0">Visual Studio 2022 が起動しないときにまず行うべき診断</a><ol><li><a href="#toc4" tabindex="0">ライセンスキャッシュの確認</a></li><li><a href="#toc5" tabindex="0">SafeMode で起動できるか確認する</a></li><li><a href="#toc6" tabindex="0">起動ログを確認する</a></li><li><a href="#toc7" tabindex="0">TEMP環境変数の確認</a></li></ol></li><li><a href="#toc8" tabindex="0">Visual Studio 2022 が起動しない原因と対処方法</a><ol><li><a href="#toc9" tabindex="0">ライセンスキャッシュ破損</a><ol><li><a href="#toc10" tabindex="0">ライセンスキャッシュが破損した場合の症状</a></li><li><a href="#toc11" tabindex="0">対処方法</a></li></ol></li><li><a href="#toc12" tabindex="0">拡張機能の不具合</a><ol><li><a href="#toc13" tabindex="0">拡張機能が不具合時の症状</a></li><li><a href="#toc14" tabindex="0">拡張機能の不具合かどうかの確認方法</a></li><li><a href="#toc15" tabindex="0">対処方法</a></li></ol></li><li><a href="#toc16" tabindex="0">アップデート失敗</a><ol><li><a href="#toc17" tabindex="0">アップデート失敗時の症状</a></li><li><a href="#toc18" tabindex="0">対処方法</a></li></ol></li><li><a href="#toc19" tabindex="0">TEMP環境変数の誤設定</a><ol><li><a href="#toc20" tabindex="0">よくある誤設定</a></li></ol></li></ol></li><li><a href="#toc21" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">はじめに</span></h2>



<p>Visual Studio 2022を使っていると、ある日突然「起動しない」「スタート画面が表示されない」といったトラブルに遭遇することがあります。</p>



<p>本ブログでは、Visual Studio 2022が起動しなくなった場合の対処法を、分かり易く紹介します。</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc2">Visual Studio 2022が起動する仕組み</span></h2>



<p>まずトラブルの原因を特定するため、Visual Studio 2022 の起動プロセスを説明します。</p>



<ol class="wp-block-list">
<li><strong>devenv.exe の起動</strong><br>Visual Studio の実行ファイル（devenv.exe ）が起動され、Visual Studio 2022の初期化が始まる。<br><br></li>



<li><strong>ライセンスの検証</strong><br>「%LOCALAPPDATA%\Microsoft\VSCommon\OnlineLicensing」 にあるキャッシュを参照し、ライセンスの有効性を確認する。
<ul class="wp-block-list">
<li><strong>%LOCALAPPDATA%</strong><br>C:\Users\ユーザ名\AppData\Local　を示す。<br><br></li>
</ul>
</li>



<li><strong>拡張機能の読み込み</strong><br>ReSharperなどの拡張機能が順次読み込まれる。SafeModeでは読み込みをスキップ可能。<br><br></li>



<li><strong>ユーザー設定の復元<br></strong>%APPDATA%\Microsoft\VisualStudio に保存された設定ファイルを読み込み、前回の状態を復元する。
<ul class="wp-block-list">
<li>C:\Users\ユーザ名\AppData\Roaming　を示す。<br><br></li>
</ul>
</li>



<li><strong>ワークロードの初期化</strong><br>C#や.NETなど、インストール済みのワークロードに応じて必要なコンポーネントを初期化する。<br><br></li>



<li><strong>スタートウィンドウの表示</strong><br>最近開いたプロジェクトやテンプレートが表示され、ユーザー操作が可能になる。</li>
</ol>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="linkcard"><div class="lkc-external-wrap"><a rel="noopener" class="lkc-link no_icon" href="https://amzn.to/4nBFQdj" data-lkc-id="95" target="_blank"><div class="lkc-card"><div class="lkc-info"><div class="lkc-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=amzn.to" alt="" width="16" height="16" /></div><div class="lkc-domain">amzn.to</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Famzn.to%2F4nBFQdj?w=200" width="170px" height="200px" alt="" /></figure><div class="lkc-title">改訂新版　Visual Studio パーフェクトガイド</div><div class="lkc-excerpt">本書は、初めて開発を行う人に向けに最新の「Visual Studio 2022」の活用方法を解説した入門書です。本書を読めば、.NET MAUI／Blazorによるマルチプラットフォーム開発、単体テストフレームワークを用いたソフトウェアテスト、Run To Clickによるデバッグ技法、行ステージングによるソースコード管理など開発に必要なVisual Studioの活用法がわかります。</div></div><div class="clear"></div></div></a></div></div>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc3">Visual Studio 2022 が起動しないときにまず行うべき診断</span></h2>



<h3 class="wp-block-heading"><span id="toc4">ライセンスキャッシュの確認</span></h3>



<p>%LOCALAPPDATA%\Microsoft\VSCommon\OnlineLicensing　フォルダ内の「<code>default.metadata</code>」 が NULL 埋めされていたら破損。</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc5">SafeMode で起動できるか確認する</span></h3>



<p>ファイ名を指定して実行（「ウィンドウズキー＋W」）で、「devenv.exe /SafeMode」コマンドが実行できるか確認する。</p>



<p>拡張機能を読み込まないで起動するので、起動できた場合は拡張機能が原因の可能性が大きい。</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="384" src="https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-003-1024x384.png" alt="" class="wp-image-4115" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-003-1024x384.png 1024w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-003-300x113.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-003-768x288.png 768w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-003-1536x576.png 1536w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-003.png 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc6">起動ログを確認する</span></h3>



<p>「devenv.exe /log」で起動後、ログファイル「%APPDATA%\Microsoft\VisualStudio\Version\ActivityLog.xml」内のエラー内容（例：ライセンス検証失敗、拡張機能クラッシュ）を確認する。</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc7">TEMP環境変数の確認</span></h3>



<p>セミコロン付きや無効なパスがあると起動に失敗します。</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="linkcard"><div class="lkc-external-wrap"><a rel="noopener" class="lkc-link no_icon" href="https://amzn.to/43DRIo6" data-lkc-id="96" target="_blank"><div class="lkc-card"><div class="lkc-info"><div class="lkc-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=amzn.to" alt="" width="16" height="16" /></div><div class="lkc-domain">amzn.to</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Famzn.to%2F43DRIo6?w=200" width="170px" height="200px" alt="" /></figure><div class="lkc-title">Visual Studioパーフェクトガイド 単行本</div><div class="lkc-excerpt">本書はIDEに焦点を当てた書籍です。IDEは豊富な機能が揃っているため、C#を用いてUnityでゲーム開発を行う場合やクロスプラットフォーム開発を行う際,IDE(Visual Studio)を使うのはデファクトスタンダードになっています。本書は新人エンジニアに向けて,豊富な機能が揃ったIDEが裏で何をやっているかをわかりやすく解説した書籍を目指します。</div></div><div class="clear"></div></div></a></div></div>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc8">Visual Studio 2022 が起動しない原因と対処方法</span></h2>



<h3 class="wp-block-heading"><span id="toc9">ライセンスキャッシュ破損</span></h3>



<p>Visual Studio は、起動時のライセンスを、毎回オンラインで確認するのではなく、以下のフォルダにあるキャッシュファイル default.metadata 等を参照します。</p>



<pre class="wp-block-code bash"><code>%LOCALAPPDATA%\Microsoft\VSCommon\OnlineLicensing</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc10">ライセンスキャッシュが破損した場合の症状</span></h4>



<ul class="wp-block-list">
<li>Visual Studio が起動直後にクラッシュ</li>



<li>スタート画面が表示されず、プロセスが即終了</li>



<li>ログに「License validation task failed unexpectedly」などのエラーが記録される</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc11">対処方法</span></h4>



<p>以下のようにして、キャッシュのリセットを実行します。</p>



<p><strong>「%LOCALAPPDATA%\Microsoft\VSCommon\OnlineLicensing」のフォルダ名称を　「OnlineLicensing_bkup」等の名称に変更し、Visual Studio を再起動。</strong>こうする事で、新しいキャッシュが自動生成される。<br>※この操作はライセンス情報の再取得を促すもので、ライセンス自体が無効になるわけではありません。</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="384" src="https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-001-1024x384.png" alt="" class="wp-image-4112" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-001-1024x384.png 1024w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-001-300x113.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-001-768x288.png 768w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-001-1536x576.png 1536w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-001.png 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading"><span id="toc12">拡張機能の不具合</span></h3>



<h4 class="wp-block-heading"><span id="toc13">拡張機能が不具合時の症状</span></h4>



<ul class="wp-block-list">
<li>スプラッシュ画面が表示された直後に強制終了</li>



<li>スタートウィンドウが表示されず、プロセスが消える</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc14">拡張機能の不具合かどうかの確認方法</span></h4>



<ul class="wp-block-list">
<li><strong>SafeModeで起動してみる</strong></li>
</ul>



<pre class="wp-block-code"><code>devenv.exe /SafeMode</code></pre>



<p>SafeModeでは拡張機能が読み込まれない為、このモードで起動できる場合は拡張機能が原因の可能性が高いと言えます。<br></p>



<ul class="wp-block-list">
<li><strong>起動ログを確認する</strong><br>「%APPDATA%\Microsoft\VisualStudio\17.0\ActivityLog.xml」に以下のような記述がある場合、拡張機能がクラッシュの原因です</li>
</ul>



<pre class="wp-block-code plaintext"><code>Extension 'ReSharper' failed to load.
Exception: System.NullReferenceException...</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc15">対処方法</span></h4>



<ul class="wp-block-list">
<li>SafeModeで起動して、拡張機能を無効化 又は、削除
<ul class="wp-block-list">
<li>SafeModeで起動（「ファイル名を指定して実行」で、<code>devenv.exe /SafeMode</code>）</li>



<li>メニュー → [拡張機能] → [拡張機能の管理]</li>



<li>問題のある拡張機能（例：ReSharper）を「無効化」または「アンインストール」<br><br></li>
</ul>
</li>



<li>Visual Studio Installer で修復（拡張機能の不整合も含めて再構成される）
<ul class="wp-block-list">
<li>スタートメニュー → Visual Studio Installer → 対象バージョン → 修復</li>
</ul>
</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="linkcard"><div class="lkc-external-wrap"><a rel="noopener" class="lkc-link no_icon" href="https://amzn.to/47BtsUT" data-lkc-id="97" target="_blank"><div class="lkc-card"><div class="lkc-info"><div class="lkc-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=amzn.to" alt="" width="16" height="16" /></div><div class="lkc-domain">amzn.to</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Famzn.to%2F47BtsUT?w=200" width="170px" height="200px" alt="" /></figure><div class="lkc-title">Kindle Paperwhite (16GB) 7インチディスプレイ</div><div class="lkc-excerpt">レビュー：読書が楽しくなるガジェット。スマホで読むのとは違います。カラー版もありますが、カラーの書籍って雑誌を除くとそんなにないのでPaperwhiteで十分だと個人的には思います。</div></div><div class="clear"></div></div></a></div></div>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc16">アップデート失敗</span></h3>



<p>アップデート失敗は、構成ファイルの破損やネットワーク不具合、インストーラーの不整合などが原因で発生します。</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc17">アップデート失敗時の症状</span></h4>



<p>以下の様に、症状は多岐に渡る。</p>



<ul class="wp-block-list">
<li><strong>Visual Studioが起動しない</strong>
<ul class="wp-block-list">
<li>スプラッシュ画面が表示された直後にクラッシュ</li>



<li>プロセス（<code>devenv.exe</code>）が一瞬で終了する<br><br></li>
</ul>
</li>



<li><strong>Visual Studio Installer自体が起動しない</strong><br><br></li>



<li><strong>SafeModeでも起動しない</strong><br><br></li>



<li><strong>特定のワークロードが消えている</strong><br><br></li>



<li><strong>IntelliSenseが動作しない</strong><br><br></li>



<li><strong>ツールウィンドウが表示されない</strong><br><br></li>



<li><strong>起動ログ（ActivityLog.xml）に下記のような構成エラーが記録される</strong></li>
</ul>



<pre class="wp-block-code plaintext"><code>Package 'Microsoft.VisualStudio.Shell.Connected' failed to load</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>Visual Studio Installerでの症状</strong>
<ul class="wp-block-list">
<li>「修復」ボタンがグレーアウトしている</li>



<li>インストール済みの構成が表示されない</li>



<li>「アップデートに失敗しました」などのポップアップが出る</li>
</ul>
</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc18">対処方法</span></h4>



<ul class="wp-block-list">
<li><strong>Visual Studio Installer で修復を試す</strong>
<ul class="wp-block-list">
<li>スタートメニューから「Visual Studio Installer」を起動</li>



<li>対象のバージョン（例：Visual Studio 2022）を選択</li>



<li>「修復」ボタンをクリック</li>



<li>修復完了後、再起動して確認<br><br></li>
</ul>
</li>



<li><strong>Installer自体が起動しない、修復できない場合は、Microsoft公式の「InstallCleanup.exe」ツールを使ってインストール情報を完全に削除します。</strong>
<ul class="wp-block-list">
<li>管理者権限でコマンドプロンプトを起動</li>



<li>以下のコマンドを実行</li>
</ul>
</li>
</ul>



<pre class="wp-block-code bash"><code>"C:\Program Files (x86)\Microsoft Visual Studio\Installer\InstallCleanup.exe" -i 17</code></pre>



<p>※ <code>-i 17</code> は Visual Studio 2022 のバージョン指定<br>　クリーンアップ完了後、Visual Studio 2022 を再インストール<br></p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>アップデートが「ダウンロードできない」「接続できない」といったネットワーク系のエラーで失敗する場合</strong>
<ul class="wp-block-list">
<li><code>C:\Windows\System32\drivers\etc\hosts</code> を管理者権限で開く</li>



<li>「93.184.215.201 download.visualstudio.microsoft.com」　を追記
<ul class="wp-block-list">
<li><code>93.184.215.201</code> は、米国の CDN（コンテンツ配信ネットワーク）やホスティングサービスが使用する IP アドレスのひとつで、特に <a href="https://example.com/">example.com</a> というテスト用ドメインのホスト先。本来の Microsoft の更新サーバーではなく、接続テストや一時的な回避策として使われることがあるだけで、恒久的な解決策ではありません。</li>
</ul>
</li>



<li>コマンドプロンプトで、「ipconfig /flushdns」を実行</li>
</ul>
</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="384" src="https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-005-1024x384.png" alt="" class="wp-image-4117" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-005-1024x384.png 1024w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-005-300x113.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-005-768x288.png 768w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-005-1536x576.png 1536w, https://www.kemmy-it.com/wp-content/uploads/2025/02/01_blg-005.png 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading"><span id="toc19">TEMP環境変数の誤設定</span></h3>



<h4 class="wp-block-heading"><span id="toc20">よくある誤設定</span></h4>



<ul class="wp-block-list">
<li><strong><code>TEMP=C:\Temp;</code>（末尾にセミコロン）</strong>
<ul class="wp-block-list">
<li>パスが無効と認識され、起動失敗<br><br></li>
</ul>
</li>



<li><strong><code>TEMP=</code>（空欄）</strong>
<ul class="wp-block-list">
<li>一時ファイルが保存できず、クラッシュ<br><br></li>
</ul>
</li>



<li><strong><code>TEMP=D:\フォルダ名</code>（存在しないパス）</strong>
<ul class="wp-block-list">
<li>ファイル書き込みエラーで起動不能<br><br></li>
</ul>
</li>



<li><strong><code>TEMP</code> がネットワークドライブ</strong>
<ul class="wp-block-list">
<li>アクセス遅延や失敗で起動不能になることも<br></li>
</ul>
</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="linkcard"><div class="lkc-external-wrap"><a rel="noopener" class="lkc-link no_icon" href="https://amzn.to/3WzBCIf" data-lkc-id="99" target="_blank"><div class="lkc-card"><div class="lkc-info"><div class="lkc-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=amzn.to" alt="" width="16" height="16" /></div><div class="lkc-domain">amzn.to</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Famzn.to%2F3WzBCIf?w=200" width="170px" height="200px" alt="" /></figure><div class="lkc-title">New Amazon Kindle Colorsoft | 16GBストレージ、防水、7インチカラーディスプレイ</div><div class="lkc-excerpt">booxなどのandroid搭載の電子ペーパー端末と迷いましたが、お風呂で使いたかったので結局はこの商品にしました。電子ペーパーはページ送り時の読み込みが遅いと言う印象がありましたが個人的には全然問題ありませんでした。カラーの発色は淡いですが、こんなもので良いだろうと言う感想です。</div></div><div class="clear"></div></div></a></div></div>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc21">まとめ</span></h2>



<p>Visual Studio が突然起動しなくても慌てる必要はありません。C#等のソースはIDEとは別フォルダとして保存されているので、最悪 他のIDE（VSCode）でも使用が可能です。</p>



<p>先ずは起動のプロセスを理解し、起動しなくなった原因を突きとめるために診断を行う事です。そして、その診断に基づいた適切な処置を実行する事で再起動する事が可能となります。</p>



<p></p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Visual Studio Code】VSCodeでTypeScript開発環境を構築する（初心者向け）</title>
		<link>https://www.kemmy-it.com/2025/09/19/vscode_typescript_debug/</link>
		
		<dc:creator><![CDATA[Kemmy]]></dc:creator>
		<pubDate>Fri, 19 Sep 2025 04:56:16 +0000</pubDate>
				<category><![CDATA[Visual Studio Code]]></category>
		<guid isPermaLink="false">https://www.kemmy-it.com/?p=6088</guid>

					<description><![CDATA[目次 はじめにTypeScriptとは？　なぜ使用するのか？開発環境の準備VSCodeのインストールNode.jsのインストールNode.js 環境とはTypeScriptのインストールtsconfig.jsonの基本設 [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number-detail toc-center tnt-number_detail border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">はじめに</a></li><li><a href="#toc2" tabindex="0">TypeScriptとは？　なぜ使用するのか？</a></li><li><a href="#toc3" tabindex="0">開発環境の準備</a><ol><li><a href="#toc4" tabindex="0">VSCodeのインストール</a></li><li><a href="#toc5" tabindex="0">Node.jsのインストール</a></li><li><a href="#toc6" tabindex="0">Node.js 環境とは</a></li><li><a href="#toc7" tabindex="0">TypeScriptのインストール</a></li><li><a href="#toc8" tabindex="0">tsconfig.jsonの基本設定</a></li><li><a href="#toc9" tabindex="0">package.json の設定</a></li><li><a href="#toc10" tabindex="0">プロジェクトのディレクトリ構成を整える</a></li></ol></li><li><a href="#toc11" tabindex="0">サンプルプログラムの動作確認</a><ol><li><a href="#toc12" tabindex="0">サンプルプログラムの作成・コンパイル・デバッグ</a></li><li><a href="#toc13" tabindex="0">launch.jsonの設定</a></li></ol></li><li><a href="#toc14" tabindex="0">「VSCodeでTypeScript開発環境を構築する」　まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">はじめに</span></h2>



<p>TypeScriptは、JavaScriptに型安全性を加えた強力な言語です。最近ではReactやNode.jsなどの開発でも主流となりつつあります。</p>



<p>本ブログでは、<strong>初心者でも迷わずVSCodeでTypeScript開発環境を構築できるように</strong>、手順をおって紹介します。</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc2">TypeScriptとは？　なぜ使用するのか？</span></h2>



<p>TypeScriptは、型定義やクラスベースの構文などを追加することで、<strong>保守性・可読性・安全性</strong>を向上させます。</p>



<p>例えば、以下のようなコードで型エラーを防ぐことが可能です。</p>



<pre class="wp-block-code"><code>function greet(name: string) {
  return `Hello, ${name}`;
}
greet(42); // エラー：number型はstring型に代入できません</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc3">開発環境の準備</span></h2>



<h3 class="wp-block-heading"><span id="toc4">VSCodeのインストール</span></h3>



<p>VSCodeのインストールは、以下のブログを参考にして下さい。</p>



<p><a href="https://www.kemmy-it.com/2024/10/20/vscode_install/">VSCodeのインストール</a></p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc5">Node.jsのインストール</span></h3>



<p>TypeScriptはNode.js環境で動作します。Node.jsは下記の公式サイトからインストールしてください。</p>



<p><a href="https://nodejs.org/ja/">Node.jsの公式サイト</a></p>



<p>インストール後、ターミナルで以下を確認します。各バージョンが表示されれば正常です。</p>



<ul class="wp-block-list">
<li>npm（エヌピーエム）コマンドは <strong>Node Package Manager</strong> の略で、Node.jsのための<strong>パッケージ管理ツール</strong>です。</li>
</ul>



<pre class="wp-block-code"><code>node -v   # Node.jsのバージョン確認
npm -v    # npmのバージョン確認</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="910" height="167" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/01_VSCode_TupeScript.png" alt="" class="wp-image-6091" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/01_VSCode_TupeScript.png 910w, https://www.kemmy-it.com/wp-content/uploads/2025/09/01_VSCode_TupeScript-300x55.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/01_VSCode_TupeScript-768x141.png 768w" sizes="(max-width: 910px) 100vw, 910px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc6">Node.js 環境とは</span></h3>



<p>通常、JavaScriptはブラウザ上でしか動作しません（例：Chromeの開発者ツールなど）。しかし、Node.jsを使用する事で、<strong>JavaScriptをPC上で直接実行できる</strong>ようになります。</p>



<p>PC上で実行する事により、以下が可能となります。</p>



<ul class="wp-block-list">
<li><strong>ブラウザでは制限されていた「ファイル操作」「ネットワーク通信」「プロセス管理」</strong></li>



<li><strong>サーバーアプリケーションやCLIツール（コマンドラインインタフェースで動作するツール）の開発</strong></li>
</ul>



<pre class="wp-block-code"><code>// ファイルを読み込む例（Node.js環境）
import { readFileSync } from 'fs';
const data = readFileSync('data.txt', 'utf-8');
console.log(data);</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc7">TypeScriptのインストール</span></h3>



<p>本ブログでは、「TypeScript_prj」フォルダを作成し、プロジェクトにTypeScriptを適用させる方式で進めます。</p>



<p>以下のコマンドを実行し、TypeScriptをインストールします。</p>



<pre class="wp-block-code"><code>mkdir TypeScript_prj
cd TypeScript_prj
npm init -y
npm install --save-dev typescript
npx tsc --init</code></pre>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="583" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/02_VSCode_TupeScript-1024x583.png" alt="" class="wp-image-6093" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/02_VSCode_TupeScript-1024x583.png 1024w, https://www.kemmy-it.com/wp-content/uploads/2025/09/02_VSCode_TupeScript-300x171.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/02_VSCode_TupeScript-768x438.png 768w, https://www.kemmy-it.com/wp-content/uploads/2025/09/02_VSCode_TupeScript-120x68.png 120w, https://www.kemmy-it.com/wp-content/uploads/2025/09/02_VSCode_TupeScript-160x90.png 160w, https://www.kemmy-it.com/wp-content/uploads/2025/09/02_VSCode_TupeScript.png 1104w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>補足：グローバル環境にTypeScriptを適用させる場合は以下のコマンドでインストールします。</li>
</ul>



<pre class="wp-block-code"><code>npm install -g typescript</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc8">tsconfig.jsonの基本設定</span></h3>



<p>tsconfig.jsonは<strong>TypeScriptコンパイラ（tsc）の動作を制御するための設定ファイル</strong>です。これにより、どのファイルをどう変換するか、どんな型チェックを行うか、成果物をどこに出力するかなどを一元管理できます。</p>



<ul class="wp-block-list">
<li><strong>基本構成</strong><br>以下は「ESM対応」「型安全性」「ライブラリ公開」などを意識した<strong>TypeScript設計</strong>です。</li>
</ul>



<pre class="wp-block-code"><code>{
  // Visit https://aka.ms/tsconfig to read more about this file
  "compilerOptions": {
    // File Layout
    "rootDir": "./src",
    "outDir": "./dist",

    // Environment Settings
    // See also https://aka.ms/tsconfig/module
    "module": "esnext",
    "target": "esnext",
    "types": &#91;],

    // Other Outputs
    "sourceMap": true,
    "declaration": true,
    "declarationMap": true,

    // Stricter Typechecking Options
    "noUncheckedIndexedAccess": true,
    "exactOptionalPropertyTypes": true,

    // Recommended Options
    "strict": true,
    "jsx": "react-jsx",
    "verbatimModuleSyntax": true,
    "isolatedModules": true,
    "noUncheckedSideEffectImports": true,
    "moduleDetection": "force",
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  }
}
</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>パラメータの内容</strong></li>
</ul>



<figure class="wp-block-flexible-table-block-table"><table class=""><thead><tr><th>パラメータ</th><th>設定値</th><th style="text-align:left">目的・効果</th><th style="text-align:left">補足</th></tr></thead><tbody><tr><td>rootDir</td><td>&#8220;./src&#8221;</td><td style="text-align:left">ソースコードの起点ディレクトリ</td><td style="text-align:left"><code>.ts</code> ファイルはここに配置</td></tr><tr><td>outDir</td><td>&#8220;./dist&#8221;</td><td style="text-align:left">コンパイル後の出力先</td><td style="text-align:left"><code>.js</code>, <code>.d.ts</code>, <code>.map</code> などが生成される</td></tr><tr><td>module</td><td>&#8220;esnext&#8221;</td><td style="text-align:left">ESモジュール形式で出力</td><td style="text-align:left"><code>import</code> / <code>export</code> を保持</td></tr><tr><td>target</td><td>&#8220;esnext&#8221;</td><td style="text-align:left">最新のJS構文で出力</td><td style="text-align:left">Node.js v20+ やモダンブラウザ向け</td></tr><tr><td>types</td><td>[]</td><td style="text-align:left">グローバル型定義を読み込まない</td><td style="text-align:left">明示的な型管理を前提とした設計</td></tr><tr><td>sourceMap</td><td>true</td><td style="text-align:left">ソースマップを生成</td><td style="text-align:left"><code>.ts</code> と <code>.js</code> の対応が可能になる</td></tr><tr><td>declaration</td><td>true</td><td style="text-align:left"><code>.d.ts</code> 型定義ファイルを生成</td><td style="text-align:left">ライブラリ公開や補完に有効</td></tr><tr><td><code>declarationMap</code></td><td>true</td><td style="text-align:left"><code>.d.ts.map</code> を生成</td><td style="text-align:left">型安全性が向上するが記述は冗長に</td></tr><tr><td>noUncheckedIndexedAccess</td><td>true</td><td style="text-align:left">インデックスアクセスに <code>undefined</code> を含める</td><td style="text-align:left"><code>null</code> を含めない厳密設計に</td></tr><tr><td>exactOptionalPropertyTypes</td><td>true</td><td style="text-align:left">オプショナルは <code>undefined</code> のみ許容</td><td style="text-align:left"><code>null</code> を含めない厳密設計に</td></tr><tr><td>strict</td><td>true</td><td style="text-align:left">型チェックを一括強化</td><td style="text-align:left"><code>noImplicitAny</code> などが有効化される</td></tr><tr><td>jsx</td><td>&#8220;react-jsx&#8221;</td><td style="text-align:left">React 17以降のJSX変換方式</td><td style="text-align:left"><code>import React</code> 不要で簡潔な構文に</td></tr><tr><td>verbatimModuleSyntax</td><td>true</td><td style="text-align:left"><code>import</code> / <code>export</code> をそのまま出力</td><td style="text-align:left">バンドラーとの整合性が向上</td></tr><tr><td>isolatedModules</td><td>true</td><td style="text-align:left">各ファイルを単体でコンパイル可能に</td><td style="text-align:left">暗黙的なモジュール化を防止</td></tr><tr><td>noUncheckedSideEffectImports</td><td>true</td><td style="text-align:left">副作用のある <code>import</code> に警告</td><td style="text-align:left">安全性と可読性が向上</td></tr><tr><td>moduleDetection</td><td>&#8220;force&#8221;</td><td style="text-align:left">明示的な <code>import</code> / <code>export</code> のみをモジュールと判定</td><td style="text-align:left">暗黙的なモジュール化を防止</td></tr><tr><td>skipLibCheck</td><td>true</td><td style="text-align:left"><code>node_modules</code> の型チェックをスキップ</td><td style="text-align:left">ビルド高速化に有効</td></tr><tr><td>forceConsistentCasingInFileNames</td><td>true</td><td style="text-align:left">ファイル名の大文字・小文字を厳密に扱う</td><td style="text-align:left">OS間の互換性を保つ（特にLinux）</td></tr></tbody></table></figure>



<p>パラメータの詳細については、以下のサイトを参照ください。</p>



<ul class="wp-block-list">
<li><a href="https://www.typescriptlang.org/docs/handbook/tsconfig-json.html">公式ハンドブック</a></li>



<li><a href="https://www.typescriptlang.org/tsconfig/">公式 tsconfig オプション一覧</a></li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc9">package.json の設定</span></h3>



<ul class="wp-block-list">
<li><strong>役割</strong><br>Node.js／JavaScriptプロジェクトの構成・依存関係・スクリプトを管理する中心ファイル。</li>
</ul>



<pre class="wp-block-code"><code>{
  "devDependencies": {
    "typescript": "^5.9.2"
  },
  "name": "typescript_prj",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" &amp;&amp; exit 1"
  },
  "keywords": &#91;],
  "author": "",
  "license": "ISC",
  "type": "module"
}</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc10">プロジェクトのディレクトリ構成を整える</span></h3>



<p>tsconfig.json の基本設定が完了したら、TypeScriptプロジェクトとしての土台が整った状態です。ここからは、<strong>実際にコードを書いて、コンパイル・実行・開発環境を整えるステップ</strong>に進みます。</p>



<p>・TypeScript_prj内をtsconfig.jsonに合わせて構成します。</p>



<pre class="wp-block-code"><code>TypeScript_prj/
├── src/                ← TypeScriptファイルを置く場所
│   └── index.ts       ← エントリーポイント
├── dist/               ← コンパイル後の出力先（tsconfigで指定済み）
├── tsconfig.json       ← コンパイラ設定ファイル
├── package.json        ← npm管理ファイル
├── package-lock.json   ← npmの依存パッケージと構成を記録する自動生成するファイル
├── .vscode/　　　　　　← （VSCode）でプロジェクトごとの開発環境設定を保存
├── node_modules/　　　 ← npmでインストールしたパッケージを保存</code></pre>



<p>以上で、TypeScript環境の構築は完了です。</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc11">サンプルプログラムの動作確認</span></h2>



<h3 class="wp-block-heading"><span id="toc12">サンプルプログラムの作成・コンパイル・デバッグ</span></h3>



<ul class="wp-block-list">
<li><strong>サンプルプログラムの作成</strong><br>index.ts をsrcディレクトの中に以下の内容で作成します。</li>
</ul>



<pre class="wp-block-code"><code>// src/index.ts
const greet = (name: string): string =&gt; {
  return `こんにちは、${name}さん！`;
};

console.log(greet("太郎"));</code></pre>



<ul class="wp-block-list">
<li><strong>コンパイル</strong><br>VSCodeのターミナルで以下のコマンドを実行。今回の設定では、src/ディレクト内の全ての.tsファイルがコンパイルされ、dist/ディレクトに出力されます。</li>
</ul>



<pre class="wp-block-code"><code>npx tsc</code></pre>



<ul class="wp-block-list">
<li>コンパイルされた、index.js</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="942" height="358" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/03_VSCode_TupeScript.png" alt="" class="wp-image-6111" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/03_VSCode_TupeScript.png 942w, https://www.kemmy-it.com/wp-content/uploads/2025/09/03_VSCode_TupeScript-300x114.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/03_VSCode_TupeScript-768x292.png 768w" sizes="(max-width: 942px) 100vw, 942px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc13">launch.jsonの設定</span></h3>



<ul class="wp-block-list">
<li><strong>役割</strong><br><strong>Visual Studio Codeで、デバッグの構成を設定するためのファイル</strong>で、どのファイルをどう実行するか、どの環境で動かすか、引数や環境変数などを定義します。</li>
</ul>



<pre class="wp-block-code"><code>// .vscode/launch.json
{
  "version": "0.2.0",
  "configurations": &#91;
    {
      "name": "Debug TypeScript",
      "type": "node",
      "request": "launch",
      "program": "${workspaceFolder}/dist/index.js",
      /* "preLaunchTask": "tsc: build - tsconfig.json",　←　自動コンパイルを
　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　コメントアウト */
      "outFiles": &#91;"${workspaceFolder}/dist/**/*.js"]
    }
  ]
}</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>launch.jsonの作成方法</strong>
<ul class="wp-block-list">
<li>①デバッグアイコンをクリック</li>



<li>②「launch.json ファイルを作成します。」をクリック</li>



<li>③内容を入力。”program”パラメーターには今回デバッグする.jsの名称が入る。</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="949" height="393" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/04_VSCode_TupeScript.png" alt="" class="wp-image-6113" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/04_VSCode_TupeScript.png 949w, https://www.kemmy-it.com/wp-content/uploads/2025/09/04_VSCode_TupeScript-300x124.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/04_VSCode_TupeScript-768x318.png 768w" sizes="(max-width: 949px) 100vw, 949px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>デバッグ</strong>
<ul class="wp-block-list">
<li>①index.js を開いて、ブレークポイントを設定</li>



<li>②「デバッグ開始」をクリック</li>



<li>ブレークポイントでブレークし、デバッグ可能となる</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="873" height="298" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/05_VSCode_TupeScript.png" alt="" class="wp-image-6118" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/05_VSCode_TupeScript.png 873w, https://www.kemmy-it.com/wp-content/uploads/2025/09/05_VSCode_TupeScript-300x102.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/05_VSCode_TupeScript-768x262.png 768w" sizes="(max-width: 873px) 100vw, 873px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="1017" height="279" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/06_VSCode_TupeScript.png" alt="" class="wp-image-6119" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/06_VSCode_TupeScript.png 1017w, https://www.kemmy-it.com/wp-content/uploads/2025/09/06_VSCode_TupeScript-300x82.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/06_VSCode_TupeScript-768x211.png 768w" sizes="(max-width: 1017px) 100vw, 1017px" /></figure>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc14">「VSCodeでTypeScript開発環境を構築する」　まとめ</span></h2>



<p>ここまで、VSCodeでTypeScriptを使用できる環境の設定方法を紹介してきました。</p>



<ul class="wp-block-list">
<li>TypeScriptは、JavaScriptに型安全性を加えた強力な言語であること</li>



<li>TypeScriptは、Node.js環境で動作すること</li>



<li>TypeScriptのインストール方法と、プロジェクトの初期化</li>



<li>tsconfig.jsonの基本設定</li>



<li>.tsファイルのコンパイル</li>



<li>VSCodeにTypeScript環境を構築</li>



<li>コンパイルした.jsファイルをVSCodでデバッグ</li>
</ul>



<p>超初心者の方は、インストールや設定ファイルが多くあり、苦労されたかもしれません。基本をしっかりと身に着けたあとは、ReactやVueと組み合わせたTypeScript開発に挑戦してみて下さい。</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Visual Studio Code】VSCodeで、Pythonをサクッとデバッグ！</title>
		<link>https://www.kemmy-it.com/2025/09/14/vscode_python_debug/</link>
		
		<dc:creator><![CDATA[Kemmy]]></dc:creator>
		<pubDate>Sun, 14 Sep 2025 12:05:09 +0000</pubDate>
				<category><![CDATA[Visual Studio Code]]></category>
		<guid isPermaLink="false">https://www.kemmy-it.com/?p=6059</guid>

					<description><![CDATA[目次 はじめにVSCodeでPythonデバッグを始めるための準備PythonのインストールVSCode の基本設定（Pythonデバッグの準備）Python拡張機能のインストールPythonインタプリタの選択launc [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number-detail toc-center tnt-number_detail border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">はじめに</a></li><li><a href="#toc2" tabindex="0">VSCodeでPythonデバッグを始めるための準備</a><ol><li><a href="#toc3" tabindex="0">Pythonのインストール</a></li></ol></li><li><a href="#toc4" tabindex="0">VSCode の基本設定（Pythonデバッグの準備）</a><ol><li><a href="#toc5" tabindex="0">Python拡張機能のインストール</a></li><li><a href="#toc6" tabindex="0">Pythonインタプリタの選択</a></li><li><a href="#toc7" tabindex="0">launch.jsonの作成と設定</a></li></ol></li><li><a href="#toc8" tabindex="0">VSCode Python デバッグの基本</a><ol><li><a href="#toc9" tabindex="0">ブレークポイントの設定</a></li><li><a href="#toc10" tabindex="0">デバッグの開始とステップ操作</a></li><li><a href="#toc11" tabindex="0">変数の確認とデバッグコンソール</a></li><li><a href="#toc12" tabindex="0">例外処理のデバッグ</a></li></ol></li><li><a href="#toc13" tabindex="0">よくあるトラブルと対処法</a><ol><li><a href="#toc14" tabindex="0">デバッグが開始されない場合</a></li><li><a href="#toc15" tabindex="0">実行ファイルが見つからないエラー</a></li></ol></li><li><a href="#toc16" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">はじめに</span></h2>



<p>どんな言語もそうですが、学習や開発を進める中で「デバッグ」は欠かせない機能です。</p>



<p>本ブログでは、<strong>初心者向け</strong>に「VSCodeでPythonをデバッグする方法」を、設定ファイルの内容や実際のコード例を交えながら体系的に紹介していきます。</p>



<p><strong>本ブログで得られる知識</strong></p>



<ul class="wp-block-list">
<li>Pythonデバッグに必要なVSCodeの設定方法</li>



<li>launch.jsonの作成と構成の意味</li>



<li>ブレークポイントの使い方やステップ実行の操作方法</li>



<li>実際のサンプルコードを使ったデバッグの流れ</li>



<li>よくあるトラブルとその対処法</li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc2">VSCodeでPythonデバッグを始めるための準備</span></h2>



<h3 class="wp-block-heading"><span id="toc3">Pythonのインストール</span></h3>



<p>Python公式サイトから最新の安定板をインストールします。</p>



<p>インストール方法は、下記のブログ記事を参照ください。</p>



<p>参考：<a href="https://www.kemmy-it.com/2024/09/20/python_install/">Pythonインストール方法</a></p>



<p>今回は現時点の最新安定板、Ver. 3.13 をインストールしました。</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc4">VSCode の基本設定（Pythonデバッグの準備）</span></h2>



<h3 class="wp-block-heading"><span id="toc5">Python拡張機能のインストール</span></h3>



<p>VSCodeは拡張機能によって機能を強化できます。Pythonのデバッグには、Microsoft公式の「Python」拡張機能が必須です。</p>



<ul class="wp-block-list">
<li>①拡張アイコンをクリック</li>



<li>②検索バーに「Python」と入力</li>



<li>③「Python」を選択し、「インストール」ボタンをクリック</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="398" height="437" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/01_python_debug.png" alt="" class="wp-image-6065" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/01_python_debug.png 398w, https://www.kemmy-it.com/wp-content/uploads/2025/09/01_python_debug-273x300.png 273w" sizes="(max-width: 398px) 100vw, 398px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<p>「Python」をインストールすると、以下の関連した拡張機能も同時にインストールされ、デバッグ機能だけでなく、コード補完・Lint（潜在的な問題やスタイル違反を検出するツール）なども含まれるPython開発の基盤となります。</p>



<ul class="wp-block-list">
<li><strong>Pylance</strong><br>Python開発をより快適かつ堅牢にするための拡張機能</li>



<li><strong>Python Debugger</strong><br>デバッガー本体</li>



<li><strong>Python Environments</strong><br>Pythonの仮想環境管理をGUIベースで直感的に操作できるようにするためのツール</li>
</ul>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc6">Pythonインタプリタの選択</span></h3>



<p>拡張機能をインストールしたら、次にPythonインタプリタを選択します。これは、VSCodeがどのPython環境を使ってコードを実行するかを指定する設定です。</p>



<ul class="wp-block-list">
<li>インタプリタの選択手順
<ul class="wp-block-list">
<li><code>Ctrl + Shift + P</code> を押してコマンドパレットを開き「Python:インタープリターを選択」をクリック</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="798" height="325" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/03_python_debug.png" alt="" class="wp-image-6068" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/03_python_debug.png 798w, https://www.kemmy-it.com/wp-content/uploads/2025/09/03_python_debug-300x122.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/03_python_debug-768x313.png 768w" sizes="(max-width: 798px) 100vw, 798px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>今回インストールした、Python 3.13 を選択する</li>
</ul>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="759" height="231" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/04_python_debug.png" alt="" class="wp-image-6069" style="width:800px;height:auto" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/04_python_debug.png 759w, https://www.kemmy-it.com/wp-content/uploads/2025/09/04_python_debug-300x91.png 300w" sizes="(max-width: 759px) 100vw, 759px" /></figure>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc7">launch.jsonの作成と設定</span></h3>



<p>VSCodeで本格的なデバッグを行うには、<code>.vscode/launch.json</code> という設定ファイルを作成する必要があります。このファイルには、どのようにPythonコードを実行するかの構成情報を記述します。</p>



<ul class="wp-block-list">
<li><strong><code>launch.json</code>　の作成方法</strong>
<ul class="wp-block-list">
<li>デバッグ対象のPythonフォルダを開きます</li>



<li>左側の「Run and Debug」アイコン（虫のマーク）をクリック</li>



<li>「launch.json ファイルを作成します」をクリック</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="973" height="298" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/05_python_debug.png" alt="" class="wp-image-6071" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/05_python_debug.png 973w, https://www.kemmy-it.com/wp-content/uploads/2025/09/05_python_debug-300x92.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/05_python_debug-768x235.png 768w" sizes="(max-width: 973px) 100vw, 973px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>launch.json ファイルの内容（例）</li>
</ul>



<pre class="wp-block-code"><code>{
  // IntelliSense を使用して利用可能な属性を学べます。
  // 既存の属性の説明をホバーして表示します。
  // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": &#91;
    {
      "name": "Python: Current File",
      // "type": "debugpy" バージョン 2024.3.0（3月リリース）以降、
      // "type": "python" から "type": "debugpy" へと指定方法が変更された。
      <strong><span class="marker">"type": "debugpy"</span></strong>,
      "request": "launch",
      "program": "${file}",
      "console": "integratedTerminal"
　　　// 上記以外のパラメタ（参考）
　　　// "args": &#91;
      // "照幸",
      // "42"
      // ],
      // "env": {
      // "DEBUG_MODE": "true",
      // "API_KEY": "your-api-key-here"
      }
    }
  ]
}</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>各プロパティの意味</li>
</ul>



<figure class="wp-block-flexible-table-block-table"><table class=""><thead><tr><th>プロパティ</th><th>説　明</th></tr></thead><tbody><tr><td>name</td><td style="text-align:left">デバッグ構成の名前（任意）</td></tr><tr><td>type</td><td style="text-align:left">実行する言語の種類（debugpy=Python）</td></tr><tr><td>request</td><td style="text-align:left">実行方法（launchは新規実行）</td></tr><tr><td>program</td><td style="text-align:left">実行対象のファイル（<code>${file}</code>は現在開いているファイル）</td></tr><tr><td>console</td><td style="text-align:left">実行時に使用するコンソール（<code>integratedTerminal</code>推奨）</td></tr><tr><td>args</td><td style="text-align:left">実行時に渡すコマンドライン引数（リスト形式）</td></tr><tr><td>env</td><td style="text-align:left">実行時に設定する環境変数（キーと値のペア）</td></tr></tbody></table></figure>



<p>以上で、基本的なデバッグの設定準備は完了です。</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc8">VSCode Python デバッグの基本</span></h2>



<p>設定が整ったら、いよいよ実際のデバッグ操作に入ります。ここでは、ブレークポイントの設定からステップ実行、変数の確認まで、基本的な操作方法を紹介します。</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc9">ブレークポイントの設定</span></h3>



<ul class="wp-block-list">
<li><strong>一時停止のポイントを指定</strong>
<ul class="wp-block-list">
<li>コードの左端（行番号の横）をクリックすると、赤い丸が表示されます。これがブレークポイントで、実行が一時停止するポイントです。</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="608" height="241" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/06_python_debug.png" alt="" class="wp-image-6074" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/06_python_debug.png 608w, https://www.kemmy-it.com/wp-content/uploads/2025/09/06_python_debug-300x119.png 300w" sizes="(max-width: 608px) 100vw, 608px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>条件付きブレークポイント</strong>
<ul class="wp-block-list">
<li>右クリック → 「条件付きブレークポイント」を選択すると、特定の条件でのみ停止させることも可能です。</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="661" height="190" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/07_python_debug.png" alt="" class="wp-image-6075" style="width:608px;height:auto" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/07_python_debug.png 661w, https://www.kemmy-it.com/wp-content/uploads/2025/09/07_python_debug-300x86.png 300w" sizes="(max-width: 661px) 100vw, 661px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc10">デバッグの開始とステップ操作</span></h3>



<ul class="wp-block-list">
<li><strong>「Run and Debug」ボタンをクリック　⇀　「実行とデバッグ」をクリック、又はF5押下</strong></li>



<li><strong>実行が開始され、ブレークポイントで停止</strong></li>



<li><strong>以下の操作が可能になります</strong>
<ul class="wp-block-list">
<li>①続行（F5押下と同様）</li>



<li>②ステップオーバー（関数の中には入らず次の行へ）</li>



<li>③ステップイン（関数の中に入る）</li>



<li>④ステップアウト（関数の外に戻る）</li>



<li>⑤再起動</li>



<li>⑥停止（shift + F5）</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="842" height="572" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/08_python_debug.png" alt="" class="wp-image-6077" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/08_python_debug.png 842w, https://www.kemmy-it.com/wp-content/uploads/2025/09/08_python_debug-300x204.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/08_python_debug-768x522.png 768w" sizes="(max-width: 842px) 100vw, 842px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc11">変数の確認とデバッグコンソール</span></h3>



<p>停止中は、左側の「Variables」パネルで変数の状態を確認できます。また、「Debug Console」では式の評価や変数の値を直接確認できます。</p>



<ul class="wp-block-list">
<li>「Variables」パネル</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="344" height="191" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/09_python_debug.png" alt="" class="wp-image-6078" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/09_python_debug.png 344w, https://www.kemmy-it.com/wp-content/uploads/2025/09/09_python_debug-300x167.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/09_python_debug-120x68.png 120w, https://www.kemmy-it.com/wp-content/uploads/2025/09/09_python_debug-160x90.png 160w" sizes="(max-width: 344px) 100vw, 344px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>デバッグコンソール</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="864" height="273" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/10_python_debug.png" alt="" class="wp-image-6079" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/10_python_debug.png 864w, https://www.kemmy-it.com/wp-content/uploads/2025/09/10_python_debug-300x95.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/10_python_debug-768x243.png 768w" sizes="(max-width: 864px) 100vw, 864px" /></figure>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc12">例外処理のデバッグ</span></h3>



<ul class="wp-block-list">
<li>try ブロックにブレークポイントを設定</li>



<li><code>except </code>に入るかどうかを確認</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="730" height="199" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/11_python_debug.png" alt="" class="wp-image-6080" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/11_python_debug.png 730w, https://www.kemmy-it.com/wp-content/uploads/2025/09/11_python_debug-300x82.png 300w" sizes="(max-width: 730px) 100vw, 730px" /></figure>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc13">よくあるトラブルと対処法</span></h2>



<h3 class="wp-block-heading"><span id="toc14">デバッグが開始されない場合</span></h3>



<ul class="wp-block-list">
<li>launch.jsonの構文ミスがないか確認</li>



<li>Pythonインタプリタが正しく選択されているか</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc15">実行ファイルが見つからないエラー</span></h3>



<ul class="wp-block-list">
<li><code>program</code> のパスが正しいか確認</li>



<li><code>${workspaceFolder}</code> を使って相対パスを指定する方法も有効</li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc16">まとめ</span></h2>



<p>VSCodeは、Python開発において非常に強力なデバッグ機能を提供しています。launch.jsonによる柔軟な構成、ブレークポイントやステップ実行による詳細なコード解析、そしてデバッグコンソールによるリアルタイムな評価機能など、初心者から中級者まで幅広く活用できます。</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Visual Studio Code】VSCodeでコードを品質改善　ESLintの使い方完全ガイド！</title>
		<link>https://www.kemmy-it.com/2025/09/13/vscode_eslint/</link>
		
		<dc:creator><![CDATA[Kemmy]]></dc:creator>
		<pubDate>Sat, 13 Sep 2025 07:24:49 +0000</pubDate>
				<category><![CDATA[Visual Studio Code]]></category>
		<guid isPermaLink="false">https://www.kemmy-it.com/?p=6007</guid>

					<description><![CDATA[目次 はじめにESLintの機能VSCode ESLintの導入手順Node.jsプロジェクトの準備ESLintのインストールESLintの初期設定サンプルコードでのトライPrettierとの連携ESLint　＆　Pre [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number-detail toc-center tnt-number_detail border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">はじめに</a></li><li><a href="#toc2" tabindex="0">ESLintの機能</a></li><li><a href="#toc3" tabindex="0">VSCode ESLintの導入手順</a><ol><li><a href="#toc4" tabindex="0">Node.jsプロジェクトの準備</a></li><li><a href="#toc5" tabindex="0">ESLintのインストール</a></li><li><a href="#toc6" tabindex="0">ESLintの初期設定</a></li><li><a href="#toc7" tabindex="0">サンプルコードでのトライ</a></li></ol></li><li><a href="#toc8" tabindex="0">Prettierとの連携</a><ol><li><a href="#toc9" tabindex="0">ESLint　＆　Prettier　連携確認</a></li></ol></li><li><a href="#toc10" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">はじめに</span></h2>



<p>JavaScriptやTypeScriptで開発していると、コードの書き方にばらつきが出たり、うっかりミスがバグにつながったりすることがあります。そんなときに役立つのが「ESLint」です。</p>



<p>本ブログでは、初心者～中級者向けにESLintの使い方及び、Prettierとの連携の仕方を紹介します。</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc2">ESLintの機能</span></h2>



<p><strong>ESLintはJavaScriptやTypeScriptのコード品質をチェックするツール（Linter）です。</strong></p>



<p>主な機能</p>



<ul class="wp-block-list">
<li>構文エラーやバグの予兆を検出</li>



<li>コーディングルール（スタイル）の強制</li>



<li>不要なコードや未使用変数の警告</li>



<li>Prettierとの連携で整形と品質管理を両立</li>
</ul>



<p>また、VSCodeと組み合わせることで、リアルタイムに警告表示や自動修正ができ、開発効率が大幅に向上します。</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc3">VSCode ESLintの導入手順</span></h2>



<h3 class="wp-block-heading"><span id="toc4">Node.jsプロジェクトの準備</span></h3>



<p>Node.jsは、JavaScriptやTypeScriptをサーバーサイドでも動かせるようにする環境です。以下の公式サイトからインストールします。</p>



<ul class="wp-block-list">
<li>Node.jsをインストールしないと、Node.jsのライブラリ（＝パッケージ）を管理するコマンド”npm”が使用できません。</li>
</ul>



<p>　<a href="https://nodejs.org/ja">Node.js公式サイト</a></p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Node.jsプロジェクトを以下のコマンドで、初期化を行います。</p>



<pre class="wp-block-code"><code>mkdir eslint-sample
cd eslint-sample 
npm init -y</code></pre>



<p>eslint-sampleフォルダ内に、package.json という名称のファイルが作成されます。このファイルは、npmの心臓部とも言えるファイルです。プロジェクトの依存パッケージやスクリプト、バージョン情報などが記載されています。</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>最終的なpackage.jsonの内容</li>
</ul>



<pre class="wp-block-code"><code>{
  "name": "eslint-sample",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" &amp;&amp; exit 1"
  },
  "keywords": &#91;],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@eslint/js": "^9.35.0",
    "eslint": "^9.35.0",
    "eslint-config-prettier": "^10.1.8",
    "eslint-plugin-prettier": "^5.5.4",
    "eslint-plugin-react": "^7.37.5",
    "globals": "^16.4.0",
    "prettier": "^3.6.2",
    "typescript-eslint": "^8.43.0"
  }
}</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc5">ESLintのインストール</span></h3>



<ul class="wp-block-list">
<li><strong>npmコマンドでのインストール</strong><br>プロジェクトにESLint本体を導入。設定ファイルを使ってLintルールを定義します。</li>
</ul>



<pre class="wp-block-code"><code>npm install eslint --save-dev</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>VSCode 拡張機能でのインストール</strong><br>VSCode上でLint結果を表示したり、保存時に自動修正したりする補助ツールです。</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="412" height="287" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/01_ESLint.png" alt="" class="wp-image-6025" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/01_ESLint.png 412w, https://www.kemmy-it.com/wp-content/uploads/2025/09/01_ESLint-300x209.png 300w" sizes="(max-width: 412px) 100vw, 412px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc6">ESLintの初期設定</span></h3>



<p>以下のコマンドを実行します。</p>



<pre class="wp-block-code"><code>npx eslint --init</code></pre>



<p>ESLintの「設定ファイル（.eslintrc）」を対話形式で生成します。具体的には、以下のような質問に答えていくことで、プロジェクトに最適なLintルールと必要なプラグインを自動でセットアップしてくれます。</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>使用目的の選択</strong><br>コードの構文チェックだけか、問題検出やスタイル強制まで行うかを選びます。</li>
</ul>



<pre class="wp-block-code"><code>How would you like to use ESLint?
❯ To check syntax only
  <strong><span class="marker-under-red"><span class="marker">To check syntax and find problems</span></span></strong>
</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>モジュール形式の選択</strong><br>ES ModulesかCommonJSかを選択。TypeScriptならCommonJSが多いですね。</li>
</ul>



<pre class="wp-block-code"><code>What type of modules does your project use?
❯ <strong><span class="marker-under-red"><span class="marker">JavaScript modules (import/export)</span></span></strong>
  CommonJS (require/exports)
  None of these</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>使用フレームワークの選択</strong><br>ReactやVueを使っている場合は、それに対応したプラグインを自動で追加してくれます。</li>
</ul>



<pre class="wp-block-code"><code>Which framework does your project use?
❯ <span class="marker">React</span>
  Vue.js
  None of these</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>TypeScriptの使用有無</strong><br>@typescript-eslint/parser や関連プラグインの導入が必要になります。</li>
</ul>



<pre class="wp-block-code"><code>Does your project use TypeScript?
❯ <span class="marker">No</span>
  Yes</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>実行環境の選択</strong><br>ブラウザ用かNode.js用かで、環境変数（env）を設定します。</li>
</ul>



<pre class="wp-block-code"><code>Where does your code run?
❯ <span class="marker">Browser</span>
  Node</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>設定ファイルの形式<br> <code>.eslintrc.js</code> などの形式を選択。JavaScript形式ならコメントも書けて柔軟です。</li>
</ul>



<pre class="wp-block-code"><code>What format do you want your config file to be in?
❯ <span class="marker">JavaScript</span>
  YAML
  JSON</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>必要な依存パッケージの自動インストール</strong><br>eslint-plugin-react や eslint-config-<code>airbnb</code> などが自動でインストールされます。</li>
</ul>



<pre class="wp-block-code"><code>Would you like to install them now with npm?
❯<span class="marker"> <strong>Yes</strong></span>
  No</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>マネージャの選択<br>依存パッケージのインストールに使う「パッケージマネージャー」を選択</li>
</ul>



<pre class="wp-block-code"><code>Which package manager do you want to use? ...
&gt; <span class="marker">npm</span>
  yarn
  pnpm
  bun</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<p>実行後に設定されるファイル例（eslint.config.mjs）</p>



<pre class="wp-block-code"><code>import js from "@eslint/js";
import globals from "globals";
import pluginReact from "eslint-plugin-react";
import { defineConfig } from "eslint/config";

export default defineConfig(&#91;
  { files: &#91;"**/*.{js,mjs,cjs,jsx}"], plugins: { js }, extends: &#91;"js/recommended"], languageOptions: { globals: globals.browser } },
  pluginReact.configs.flat.recommended,
]);</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc7">サンプルコードでのトライ</span></h3>



<ul class="wp-block-list">
<li>サンプルコード：test.js（保存前）</li>
</ul>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="689" height="151" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/02_ESLint.png" alt="" class="wp-image-6030" style="width:800px;height:auto" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/02_ESLint.png 689w, https://www.kemmy-it.com/wp-content/uploads/2025/09/02_ESLint-300x66.png 300w" sizes="(max-width: 689px) 100vw, 689px" /></figure>



<ul class="wp-block-list">
<li>サンプルコード：test.js（保存後）</li>
</ul>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="723" height="134" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/03_ESLint.png" alt="" class="wp-image-6031" style="width:800px;height:auto" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/03_ESLint.png 723w, https://www.kemmy-it.com/wp-content/uploads/2025/09/03_ESLint-300x56.png 300w" sizes="(max-width: 723px) 100vw, 723px" /></figure>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc8">Prettierとの連携</span></h2>



<p>ESLintはコードの「品質」をチェックしますが、「整形」はPrettierが得意です。両者を連携させることで、最強の開発環境が整います。</p>



<ul class="wp-block-list">
<li>コマンドによるインストール
<ul class="wp-block-list">
<li>CLIやCI/CDで整形し、ESLintと連携</li>



<li><code>eslint-config-prettier</code>: ESLintとPrettierの競合ルールを無効化</li>



<li><code>eslint-plugin-prettier</code>: Prettierルール違反を ESLint に報告</li>
</ul>
</li>
</ul>



<pre class="wp-block-code"><code>npm install --save-dev prettier eslint-config-prettier eslint-plugin-prettier</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>VSCode拡張機能でのprettierインストール</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="574" height="470" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/01_Prettier.png" alt="" class="wp-image-5984" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/01_Prettier.png 574w, https://www.kemmy-it.com/wp-content/uploads/2025/09/01_Prettier-300x246.png 300w" sizes="(max-width: 574px) 100vw, 574px" /></figure>



<ul class="wp-block-list">
<li>プロジェクトフォルダ内に <code>.prettierrc</code> を作成</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="926" height="199" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/10_ESLint.png" alt="" class="wp-image-6049" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/10_ESLint.png 926w, https://www.kemmy-it.com/wp-content/uploads/2025/09/10_ESLint-300x64.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/10_ESLint-768x165.png 768w" sizes="(max-width: 926px) 100vw, 926px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><code>eslint.config.mjs</code> に Prettier連携を追加</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="913" height="485" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/04_ESLint-1.png" alt="" class="wp-image-6037" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/04_ESLint-1.png 913w, https://www.kemmy-it.com/wp-content/uploads/2025/09/04_ESLint-1-300x159.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/04_ESLint-1-768x408.png 768w" sizes="(max-width: 913px) 100vw, 913px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>VSCodeで保存時に自動整形する設定<br><code>.vscode/settings.json</code> に以下を追加</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="675" height="317" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/07_ESLint.png" alt="" class="wp-image-6038" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/07_ESLint.png 675w, https://www.kemmy-it.com/wp-content/uploads/2025/09/07_ESLint-300x141.png 300w" sizes="(max-width: 675px) 100vw, 675px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>カレントフォルダ以下の全てのファイルを整形する場合<br>以下のコマンドを実行する</li>
</ul>



<pre class="wp-block-code"><code>npx prettier --write .</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc9">ESLint　＆　Prettier　連携確認</span></h3>



<ul class="wp-block-list">
<li><strong>整形前のコード</strong>
<ul class="wp-block-list">
<li>インデントが不統一
<ul class="wp-block-list">
<li>スペース数を統一（４スペース）</li>
</ul>
</li>



<li>セミコロンがない
<ul class="wp-block-list">
<li>自動で追加</li>
</ul>
</li>



<li>ダブルクォート
<ul class="wp-block-list">
<li>シングルクォートに変更</li>
</ul>
</li>



<li>オブジェクトのスペース
<ul class="wp-block-list">
<li>25の前に半角スペースを入れて整形</li>
</ul>
</li>



<li>配列のスペース
<ul class="wp-block-list">
<li>[&#8220;Linux&#8221;, &#8230;] → [ &#8216;Linux&#8217;, &#8230; ]の様に整形</li>
</ul>
</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="918" height="303" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/08_ESLint.png" alt="" class="wp-image-6039" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/08_ESLint.png 918w, https://www.kemmy-it.com/wp-content/uploads/2025/09/08_ESLint-300x99.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/08_ESLint-768x253.png 768w" sizes="(max-width: 918px) 100vw, 918px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>整形後（保存時）のコード</strong><br>整形前コードの整形項目が全て反映されている
<ul class="wp-block-list">
<li>ファイルが保存状態になっていないのは、コメントまでも整形される為整形後にコメントを記入しました。コメントは行の上に記述した方が良いでしょう。<br></li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="308" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/09_ESLint-1024x308.png" alt="" class="wp-image-6042" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/09_ESLint-1024x308.png 1024w, https://www.kemmy-it.com/wp-content/uploads/2025/09/09_ESLint-300x90.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/09_ESLint-768x231.png 768w, https://www.kemmy-it.com/wp-content/uploads/2025/09/09_ESLint.png 1038w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc10">まとめ</span></h2>



<p>ESLintは以下の点で効率化に貢献可能です。</p>



<ul class="wp-block-list">
<li><strong>バグの早期発見</strong></li>



<li><strong>コードスタイルの統一</strong>
<ul class="wp-block-list">
<li>レビュー時の「見た目の指摘」を排除し、本質的な議論に集中できる</li>
</ul>
</li>



<li><strong>自動修正による時短</strong></li>



<li><strong>Prettierとの連携で整形と品質チェックを分離</strong></li>



<li><strong>プロジェクトごとの柔軟なルール設計</strong></li>
</ul>



<p>以上の様に、ESLintは「コードの見た目」だけでなく、「設計・保守性・安全性」にも踏み込んだチェックが可能です。</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>「Prettier」の詳細については、以下の記事で紹介しています。是非参考にして下さい。　</li>
</ul>



<p>　参考：<a href="https://www.kemmy-it.com/2025/09/13/vscode_prettier/" data-type="link" data-id="https://www.kemmy-it.com/2025/09/13/vscode_prettier/">VSCodeでコード整形を自動化。 Prettierの使い方完全ガイド！</a></p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Visual Studio Code】VSCodeでコード整形を自動化。 Prettierの使い方完全ガイド！</title>
		<link>https://www.kemmy-it.com/2025/09/13/vscode_prettier/</link>
		
		<dc:creator><![CDATA[Kemmy]]></dc:creator>
		<pubDate>Sat, 13 Sep 2025 00:52:15 +0000</pubDate>
				<category><![CDATA[Visual Studio Code]]></category>
		<guid isPermaLink="false">https://www.kemmy-it.com/?p=5982</guid>

					<description><![CDATA[目次 はじめにVSCode Prettierとは？VSCode　Prettierの主な特徴VSCode　Prettierの導入手順拡張機能でPrettierをインストールFormat On Saveの設定Prettier [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number-detail toc-center tnt-number_detail border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-10" checked><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">はじめに</a></li><li><a href="#toc2" tabindex="0">VSCode Prettierとは？</a><ol><li><a href="#toc3" tabindex="0">VSCode　Prettierの主な特徴</a></li></ol></li><li><a href="#toc4" tabindex="0">VSCode　Prettierの導入手順</a><ol><li><a href="#toc5" tabindex="0">拡張機能でPrettierをインストール</a></li><li><a href="#toc6" tabindex="0">Format On Saveの設定</a></li><li><a href="#toc7" tabindex="0">Prettierを既定のフォーマッターに設定</a></li><li><a href="#toc8" tabindex="0">Prettierの標準フォーマット形式（デフォルト設定）</a></li><li><a href="#toc9" tabindex="0">VSCode Prettireの設定をカスタマイズする</a><ol><li><a href="#toc10" tabindex="0">.prettierrc JSON ファイルによるカスタム例</a></li></ol></li></ol></li><li><a href="#toc11" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">はじめに</span></h2>



<p>本ブログは初心者向けにPrettier機能について分かり易く紹介しています。本ブログを読めば以下の知識が見に付きます。</p>



<ol class="wp-block-list">
<li><strong>Prettierとは何か、なぜ使うべきか</strong></li>



<li><strong>VSCodeでの導入手順と設定方法</strong></li>



<li><strong>Prettierのカスタマイズ方法</strong></li>
</ol>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc2">VSCode Prettierとは？</span></h2>



<p>プログラミング初心者が最初にぶつかる壁のひとつが「コードの見た目」。インデントがバラバラだったり、スペースや改行のルールが統一されていないと、コードの可読性が下がり、バグの温床にもなります。</p>



<p>そこで登場するのが「Prettier」。Prettierは、コードの見た目を自動で整えてくれるフォーマッター（コード整形ツール）です。</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc3">VSCode　Prettierの主な特徴</span></h3>



<ul class="wp-block-list">
<li>保存時に自動でコードを整形</li>



<li>複数言語に対応（JavaScript, TypeScript, HTML, CSS, JSONなど）</li>



<li>チーム開発でもルール統一が可能</li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc4">VSCode　Prettierの導入手順</span></h2>



<h3 class="wp-block-heading"><span id="toc5">拡張機能でPrettierをインストール</span></h3>



<ul class="wp-block-list">
<li>VSCode左側の「拡張機能」アイコンをクリックして、「検索」欄に「Prettier」を入力</li>



<li>「Prettier &#8211; Code formatter」を選択して「インストール」</li>
</ul>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="574" height="470" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/01_Prettier.png" alt="" class="wp-image-5984" style="width:436px;height:auto" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/01_Prettier.png 574w, https://www.kemmy-it.com/wp-content/uploads/2025/09/01_Prettier-300x246.png 300w" sizes="(max-width: 574px) 100vw, 574px" /></figure>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="610" height="370" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/02_Prettier.png" alt="" class="wp-image-5985" style="width:434px;height:auto" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/02_Prettier.png 610w, https://www.kemmy-it.com/wp-content/uploads/2025/09/02_Prettier-300x182.png 300w" sizes="(max-width: 610px) 100vw, 610px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc6">Format On Saveの設定</span></h3>



<p>保存時に自動整形されるように設定します。</p>



<ul class="wp-block-list">
<li>設定画面の検索欄に「Format On Save」と入力</li>



<li>「Editor: Format On Save」にチェックを入れる</li>
</ul>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="273" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/03_Prettier-1024x273.png" alt="" class="wp-image-5986" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/03_Prettier-1024x273.png 1024w, https://www.kemmy-it.com/wp-content/uploads/2025/09/03_Prettier-300x80.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/03_Prettier-768x205.png 768w, https://www.kemmy-it.com/wp-content/uploads/2025/09/03_Prettier.png 1337w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc7">Prettierを既定のフォーマッターに設定</span></h3>



<p>複数のフォーマッターがある場合、Prettierを明示的に指定する必要があります。</p>



<ul class="wp-block-list">
<li>設定画面で「Default Formatter」と検索</li>



<li><strong><span class="marker-under-red">Editorに「Prettier &#8211; Code formatter」を設定</span></strong></li>
</ul>



<p></p>



<ul class="wp-block-list">
<li>Editor
<ul class="wp-block-list">
<li>エディタで開いた通常のソースコード（.js、.ts、.html 等）</li>
</ul>
</li>



<li>Notebook
<ul class="wp-block-list">
<li>Jupyter Notebook形式（.ipynb）</li>



<li>フォーマッターとしては、Black（Python用）等が使用される</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="284" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/04_Prettier-1-1024x284.png" alt="" class="wp-image-5990" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/04_Prettier-1-1024x284.png 1024w, https://www.kemmy-it.com/wp-content/uploads/2025/09/04_Prettier-1-300x83.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/04_Prettier-1-768x213.png 768w, https://www.kemmy-it.com/wp-content/uploads/2025/09/04_Prettier-1.png 1287w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc8">Prettierの標準フォーマット形式（デフォルト設定）</span></h3>



<p>Prettierデフォルト設定は「設定を最小限にして、スタイルの議論をなくす」ことを目的としています。つまり、<strong>デフォルト設定のまま使うだけで、十分に整ったコードスタイルが得られる</strong>ように設計されています。</p>



<ul class="wp-block-list">
<li>デフォルトの主な整形ルール</li>
</ul>



<figure class="wp-block-flexible-table-block-table"><table class=""><thead><tr><th>設定項目</th><th>デフォルト値</th><th style="text-align:center">内　容</th></tr></thead><tbody><tr><td>printWidth</td><td>80</td><td style="text-align:left">1行の最大文字数（折り返し位置）</td></tr><tr><td>tabWidth</td><td>2</td><td style="text-align:left">インデント幅（スペース数）</td></tr><tr><td>useTabs</td><td>false</td><td style="text-align:left">インデントにタブを使うか（false＝スペース）</td></tr><tr><td>semi</td><td>true</td><td style="text-align:left">行末にセミコロンを付ける</td></tr><tr><td>singleQuote</td><td>falth</td><td style="text-align:left">文字列をダブルクォートで囲む</td></tr><tr><td>trailingComma</td><td>&#8220;es5&#8221;</td><td style="text-align:left">配列やオブジェクトの末尾にカンマを付ける（ES5準拠）</td></tr><tr><td>bracketSpacing</td><td>true</td><td style="text-align:left">オブジェクトリテラルの中括弧の間にスペースを入れる</td></tr><tr><td>arrowParens</td><td>&#8220;always&#8221;</td><td style="text-align:left">アロー関数の引数に括弧を常に付ける</td></tr><tr><td>endOfLine</td><td>&#8220;lf&#8221;</td><td style="text-align:left">改行コード（LF）</td></tr><tr><td>htmlWhitespace<br>Sensitivity</td><td>&#8220;CSS&#8221;</td><td style="text-align:left">CSSのdisplayプロパティに従って空白を扱う</td></tr></tbody></table></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>サンプル</strong></p>



<ul class="wp-block-list">
<li>保存前（整形前）</li>
</ul>



<pre class="wp-block-code"><code>&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt;&lt;title&gt;サンプルページ&lt;/title&gt;&lt;meta charset="UTF-8"&gt;&lt;style&gt;body{background-color:#f0f0f0;}h1{color:blue;}&lt;/style&gt;&lt;/head&gt;&lt;body&gt;&lt;h1&gt;こんにちは&lt;/h1&gt;&lt;p&gt;これはテストページです。&lt;/p&gt;&lt;div id="container"&gt;&lt;ul&gt;&lt;li&gt;項目1&lt;/li&gt;&lt;li&gt;項目2&lt;/li&gt;&lt;li&gt;項目3&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;script&gt;document.getElementById("container").style.border="1px solid #ccc";&lt;/script&gt;&lt;/body&gt;&lt;/html&gt;</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>保存後（整形後）</li>
</ul>



<pre class="wp-block-code"><code>&lt;!DOCTYPE html&gt;
&lt;html&gt;
  &lt;head&gt;
    &lt;title&gt;サンプルページ&lt;/title&gt;
    &lt;meta charset="UTF-8" /&gt;
    &lt;style&gt;
      body {
        background-color: #f0f0f0;
      }
      h1 {
        color: blue;
      }
    &lt;/style&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;h1&gt;こんにちは&lt;/h1&gt;
    &lt;p&gt;これはテストページです。&lt;/p&gt;
    &lt;div id="container"&gt;
      &lt;ul&gt;
        &lt;li&gt;項目1&lt;/li&gt;
        &lt;li&gt;項目2&lt;/li&gt;
        &lt;li&gt;項目3&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/div&gt;
    &lt;script&gt;
      document.getElementById("container").style.border = "1px solid #ccc";
    &lt;/script&gt;
  &lt;/body&gt;
&lt;/html&gt;</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc9">VSCode Prettireの設定をカスタマイズする</span></h3>



<p>Prettierはデフォルトでも十分便利ですが、細かい整形ルールを自分好みに変更することもできます。</p>



<p>カスタマイズ設定ファイルの一覧</p>



<figure class="wp-block-flexible-table-block-table"><table class=""><thead><tr><th>ファイル形式</th><th>ファイル名（例）</th><th>備　考</th></tr></thead><tbody><tr><td>JSON</td><td>.prettierrc/.prettierrc.json</td><td style="text-align:left">最もよく使われる形式</td></tr><tr><td>YAML</td><td>.prettierrc.yaml/.prettierrc.yml</td><td style="text-align:left">読みやすさ重視ならこちら</td></tr><tr><td>JavaScript</td><td>.prettierrc.js/.prettierrc.config.js</td><td style="text-align:left">動的設定が可能</td></tr><tr><td>TypeScript</td><td>.prettierrc.ts/.prettierrc.config.ts</td><td style="text-align:left">TypeScriptプロジェクト向け</td></tr><tr><td>TOML</td><td>.prettierrc.toml</td><td style="text-align:left">一部プロジェクトで好まれる</td></tr><tr><td>package.json</td><td>&#8220;prettierrc&#8221;キーを追加</td><td style="text-align:left">小規模プロジェクトに便利</td></tr></tbody></table></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc10">.prettierrc JSON ファイルによるカスタム例</span></h4>



<ul class="wp-block-list">
<li>プロジェクトルートに、.prettierrcとい名称のJSONファイルを作成します。</li>
</ul>



<p>サンプル</p>



<pre class="wp-block-code"><code>{
  "semi": true,
  "singleQuote": true,
  "tabWidth": 4,
  "trailingComma": "es5"
}</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>主な設定項目
<ul class="wp-block-list">
<li>semi
<ul class="wp-block-list">
<li>セミコロンを付けるか</li>
</ul>
</li>



<li>singleQuote
<ul class="wp-block-list">
<li>シングルクォートを使用するか</li>
</ul>
</li>



<li>tabWidth
<ul class="wp-block-list">
<li>インデント幅</li>
</ul>
</li>



<li>trailingComma
<ul class="wp-block-list">
<li>末尾のカンマの扱い</li>



<li>&#8220;es5&#8243;とは、ES5（ECMAScript 5）仕様に準拠した末尾カンマのスタイル。
<ul class="wp-block-list">
<li>カンマが付く対象は
<ul class="wp-block-list">
<li>配列</li>



<li>オブジェクトリテラル</li>



<li>関数の引数（ただし一部の環境では非対応）</li>
</ul>
</li>



<li>カンマが付かない対象
<ul class="wp-block-list">
<li>関数呼び出しの引数</li>



<li>関数宣言の引数</li>



<li>JSX属性など</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>



<ul class="wp-block-list">
<li>trailingCommaについて<br>他にも &#8220;none&#8221;（カンマを付けない）や &#8220;all&#8221;（可能な限りすべてに付ける）という選択肢がありますが、<strong>初心者やチーム開発では &#8220;es5&#8221; が最もバランスが良い</strong>とされています。</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>整形前（サンプル）<br>効果を実感して貰うため、あえてインデントやクォート、セミコロン、カンマを乱しています。</li>
</ul>



<pre class="wp-block-code"><code>const items = &#91; "apple", "banana", "cherry" ]
function showItems(){
console.log("商品一覧:")
items.forEach(function(item){
console.log(item)
})
}
showItems()</code></pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>整形後（サンプル）</li>
</ul>



<pre class="wp-block-code"><code>const items = &#91;'apple', 'banana', 'cherry'];
function showItems() {
    console.log('商品一覧:');
    items.forEach(function (item) {
        console.log(item);
    });
}
showItems();</code></pre>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc11">まとめ</span></h2>



<p>Prettier には以下のメリットがあります。</p>



<ul class="wp-block-list">
<li><strong>コードの見た目が統一される</strong><br>コードの可読性が上がり、バグの低減に繋がる</li>



<li><strong>手動整形の手間がゼロ</strong><br>整形の手間が省け、本質的なロジックに集中できる</li>



<li><strong>初心者にも優しい</strong><br>学習効率のアップにつながる</li>
</ul>



<p>Prettierは、<strong>コードの美しさと効率を両立できる最強ツール</strong>です。特に初心者や教育コンテンツを扱うような方には、<strong>「見た目の正しさ」から「本質的な理解」へと導く強力な味方</strong>になります。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Visual Studio Code】「検索・置換」機能 複数ファイル・正規表現 も完全攻略</title>
		<link>https://www.kemmy-it.com/2025/09/07/vscode_search-2/</link>
		
		<dc:creator><![CDATA[Kemmy]]></dc:creator>
		<pubDate>Sun, 07 Sep 2025 11:31:50 +0000</pubDate>
				<category><![CDATA[Visual Studio Code]]></category>
		<guid isPermaLink="false">https://www.kemmy-it.com/?p=4429</guid>

					<description><![CDATA[「検索・置換」機能は日々のコーディング作業を効率化するうえで欠かせない存在です。本ブログでは、初心者にも分かりやすく、VSCodeの検索・置換機能の基本から応用までを、下記内容も含めて体系的に紹介します。 目次 VSCo [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>「検索・置換」機能は日々のコーディング作業を効率化するうえで欠かせない存在です。本ブログでは、初心者にも分かりやすく、VSCodeの検索・置換機能の基本から応用までを、下記内容も含めて体系的に紹介します。</p>



<ul class="wp-block-list">
<li><strong>特定のファイルに絞った検索</strong></li>



<li><strong>プロジェクト全体での一括置換</strong></li>



<li><strong>正規表現を活用した検索</strong></li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>




  <div id="toc" class="toc tnt-number-detail toc-center tnt-number_detail border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-12" checked><label class="toc-title" for="toc-checkbox-12">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">VSCode 単一ファイル内での「検索と置換」</a><ol><li><a href="#toc2" tabindex="0">VSCode　検索機能　</a><ol><li><a href="#toc3" tabindex="0">検索方法</a></li><li><a href="#toc4" tabindex="0">「大文字/小文字」を区別して検索</a></li><li><a href="#toc5" tabindex="0">単語単位で検索する</a></li><li><a href="#toc6" tabindex="0">選択範囲だけを検索</a></li></ol></li><li><a href="#toc7" tabindex="0">VSCode　置換機能　</a><ol><li><a href="#toc8" tabindex="0">置換方法</a></li></ol></li></ol></li><li><a href="#toc9" tabindex="0">VSCode　複数ファイルにまたがる検索・置換</a><ol><li><a href="#toc10" tabindex="0">検索・置換 画面の表示</a></li><li><a href="#toc11" tabindex="0">「検索・置換」の手順</a></li></ol></li><li><a href="#toc12" tabindex="0">VSCode 正規表現を使用した検索</a><ol><li><a href="#toc13" tabindex="0">VSCode　正規表現での検索方法</a><ol><li><a href="#toc14" tabindex="0">サンプル１：「HTMLタグ」を消去する</a></li></ol></li></ol></li><li><a href="#toc15" tabindex="0">トラブルシュート</a><ol><li><a href="#toc16" tabindex="0">複数ファイルにまたがる検索で、閉じているファイルが検索対象にならない</a><ol><li><a href="#toc17" tabindex="0">ファイル・フォルダ名称が .gitignore に記載されている</a></li><li><a href="#toc18" tabindex="0">search.exclude設定による除外</a></li><li><a href="#toc19" tabindex="0">インデックスの破損</a></li></ol></li></ol></li><li><a href="#toc20" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">VSCode 単一ファイル内での「検索と置換」</span></h2>



<h3 class="wp-block-heading"><span id="toc2">VSCode　検索機能　</span></h3>



<h4 class="wp-block-heading"><span id="toc3">検索方法</span></h4>



<ul start="1" class="wp-block-list">
<li><strong>検索欄の表示</strong>
<ul class="wp-block-list">
<li><strong><span class="marker-under-red">ショートカット：Ctrl＋F</span></strong></li>



<li>メニュー　　　：「編集」　⇀　「検索」</li>
</ul>
</li>
</ul>



<ul class="wp-block-list">
<li><strong>検索文字入力欄に検索文字を入力</strong><br>大文字の「P」を入力すると、大文字小文字関係なくすべての「P」がヒット</li>
</ul>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="471" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/image-1024x471.png" alt="" class="wp-image-5950" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/image-1024x471.png 1024w, https://www.kemmy-it.com/wp-content/uploads/2025/09/image-300x138.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/image-768x353.png 768w, https://www.kemmy-it.com/wp-content/uploads/2025/09/image.png 1454w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc4">「大文字/小文字」を区別して検索</span></h4>



<ul class="wp-block-list">
<li><strong><span class="marker-under-red">ショートカット：<code>alt</code>+<code>c</code></span></strong></li>



<li>検索欄に大文字の「P」を入力し「Aa」を選択<br>大文字の「P」のみがヒット</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="937" height="424" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/03_kensaku.png" alt="" class="wp-image-5951" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/03_kensaku.png 937w, https://www.kemmy-it.com/wp-content/uploads/2025/09/03_kensaku-300x136.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/03_kensaku-768x348.png 768w" sizes="(max-width: 937px) 100vw, 937px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc5">単語単位で検索する</span></h4>



<p>検索語が<strong>独立した単語として存在する場合のみ</strong>一致します。</p>



<ul class="wp-block-list">
<li><strong><span class="marker-under-red">ショートカット：<code>alt</code>+<code>w</code></span></strong></li>



<li>単語境界として認識される記号（＝区切りになる）</li>
</ul>



<figure class="wp-block-flexible-table-block-table"><table class=""><thead><tr><th>記号</th><th>例</th><th>説明</th></tr></thead><tbody><tr><td>スペース</td><td><code>user name</code></td><td>user と nameは別単語</td></tr><tr><td>ドット　.</td><td><code>user.name</code></td><td>同上</td></tr><tr><td>ハイフン　-</td><td><code>user-name</code></td><td>同上</td></tr><tr><td>スラッシュ　/</td><td><code>user/name</code></td><td>同上</td></tr><tr><td>括弧()[]{}&lt;&gt;</td><td><code>user(name)</code></td><td>同上</td></tr><tr><td>カンマ　,　やセミコロン;</td><td><code>user,name</code></td><td><code>同上</code></td></tr></tbody></table></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>検索欄に<strong><span class="marker-under-red">小文字</span></strong>の「p」を入力して「大文字/小文字の区別」と「単語単位」で検索<br>本例では、<strong><span class="marker-under-red">括弧&lt;&gt;で区切られた小文字の「p」</span></strong>のみヒット</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="938" height="424" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/04_kensaku.png" alt="" class="wp-image-5952" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/04_kensaku.png 938w, https://www.kemmy-it.com/wp-content/uploads/2025/09/04_kensaku-300x136.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/04_kensaku-768x347.png 768w" sizes="(max-width: 938px) 100vw, 938px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc6">選択範囲だけを検索</span></h4>



<ul class="wp-block-list">
<li>検索範囲をカーソルで指定し、①「検索範囲を検索」オプションをクリック<br>指定した範囲内の「class」のみがヒット</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="958" height="495" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/05_kensaku-1.png" alt="" class="wp-image-5955" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/05_kensaku-1.png 958w, https://www.kemmy-it.com/wp-content/uploads/2025/09/05_kensaku-1-300x155.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/05_kensaku-1-768x397.png 768w" sizes="(max-width: 958px) 100vw, 958px" /></figure>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc7">VSCode　置換機能　</span></h3>



<h4 class="wp-block-heading"><span id="toc8">置換方法</span></h4>



<ul class="wp-block-list">
<li><strong>置換欄の表示</strong>
<ul class="wp-block-list">
<li><strong><span class="marker-under-red">ショートカット：Ctrl＋H</span></strong></li>



<li>メニュー　　　：「編集」　⇀　「置換」</li>
</ul>
</li>
</ul>



<ul class="wp-block-list">
<li><strong>検索欄（上）に置換したい文字を入力し、置換欄（下）に置換文字を入力する</strong>
<ul class="wp-block-list">
<li>①は１語ずつ確認しながら置換</li>



<li>②は全てを同時に置換</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="923" height="398" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/06_kensaku.png" alt="" class="wp-image-5957" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/06_kensaku.png 923w, https://www.kemmy-it.com/wp-content/uploads/2025/09/06_kensaku-300x129.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/06_kensaku-768x331.png 768w" sizes="(max-width: 923px) 100vw, 923px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>置換後</strong></li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="912" height="384" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/07_kensaku.png" alt="" class="wp-image-5958" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/07_kensaku.png 912w, https://www.kemmy-it.com/wp-content/uploads/2025/09/07_kensaku-300x126.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/07_kensaku-768x323.png 768w" sizes="(max-width: 912px) 100vw, 912px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>ABオプション</strong>（置換時の大文字/小文字）
<ul class="wp-block-list">
<li>オプションをクリックしない場合
<ul class="wp-block-list">
<li>置換文字通りに置換される</li>
</ul>
</li>



<li><strong>オプションをクリックした場合</strong>
<ul class="wp-block-list">
<li><strong><span class="marker-under-red">置換前の大文字/小文字の状態で置換される</span></strong></li>
</ul>
</li>
</ul>
</li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc9">VSCode　複数ファイルにまたがる検索・置換</span></h2>



<p>VSCodeでは、プロジェクト全体を対象に検索・置換が可能です。</p>



<h3 class="wp-block-heading"><span id="toc10">検索・置換 画面の表示</span></h3>



<ul class="wp-block-list">
<li><strong>ショートカット：Ctrl + Shift + F</strong></li>



<li><strong>サイドバーの虫眼鏡アイコンをクリック</strong>
<ul class="wp-block-list">
<li>下図のような「検索/置換」欄が表示される</li>



<li>三点リーダーをクリック
<ul class="wp-block-list">
<li><strong><span class="marker-under-red">「対象とするファイル」「除外するファイル」の入力欄が表示される</span></strong></li>
</ul>
</li>
</ul>
</li>
</ul>



<p>基本的な使用方法は、単一ファイルと同様。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="364" height="290" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/08_kensaku.png" alt="" class="wp-image-5959" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/08_kensaku.png 364w, https://www.kemmy-it.com/wp-content/uploads/2025/09/08_kensaku-300x239.png 300w" sizes="(max-width: 364px) 100vw, 364px" /></figure>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc11">「検索・置換」の手順</span></h3>



<ul class="wp-block-list">
<li>①「画像」の文字を検索欄に入力
<ul class="wp-block-list">
<li>index.html、policy、stile.css の３ファイルに含まれている事が確認できた</li>
</ul>
</li>



<li>②をクリックすると、上記３ファイルが同時に更新されて保存される</li>



<li>③検索している最中に変更中のファイルがある場合に、置換直前にクリックする事で最新の状態で置換ができる</li>



<li>④検索結果のクリア</li>
</ul>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="377" height="579" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/09_kensaku-1.png" alt="" class="wp-image-5962" style="width:356px;height:auto" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/09_kensaku-1.png 377w, https://www.kemmy-it.com/wp-content/uploads/2025/09/09_kensaku-1-195x300.png 195w" sizes="(max-width: 377px) 100vw, 377px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>⑤「リストとして」で表示<br>フォルダー体系として表示します</li>
</ul>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="539" height="561" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/10_kensaku.png" alt="" class="wp-image-5964" style="width:362px;height:auto" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/10_kensaku.png 539w, https://www.kemmy-it.com/wp-content/uploads/2025/09/10_kensaku-288x300.png 288w" sizes="(max-width: 539px) 100vw, 539px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>⑥エディターで開く<br>エディターで詳細を確認できます。</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="969" height="642" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/11_kensaku.png" alt="" class="wp-image-5965" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/11_kensaku.png 969w, https://www.kemmy-it.com/wp-content/uploads/2025/09/11_kensaku-300x199.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/11_kensaku-768x509.png 768w" sizes="(max-width: 969px) 100vw, 969px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>全て折りたたんで表示</li>
</ul>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="448" height="529" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/12_kensaku.png" alt="" class="wp-image-5966" style="width:309px;height:auto" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/12_kensaku.png 448w, https://www.kemmy-it.com/wp-content/uploads/2025/09/12_kensaku-254x300.png 254w" sizes="(max-width: 448px) 100vw, 448px" /></figure>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc12">VSCode 正規表現を使用した検索</span></h2>



<p><strong>正規表現（Regular Expression）とは、文字列のパターンを表現するための記法です。<br>簡単に言えば、「こういう形の文字列を探して！」と指示するためのルール</strong>です。</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc13">VSCode　正規表現での検索方法</span></h3>



<ul class="wp-block-list">
<li><strong>良く使用する正規表現と具体例</strong></li>
</ul>



<figure class="wp-block-flexible-table-block-table"><table class=""><thead><tr><th>正規表現</th><th>意味</th><th>検索例</th><th>置換例</th></tr></thead><tbody><tr><td><code>\d+</code></td><td>数字の連続</td><td><code>123</code><code>42</code></td><td><code>999</code></td></tr><tr><td><code>^abc</code></td><td>行頭がabc</td><td><code>abc def</code></td><td><code>ABC</code></td></tr><tr><td><code>&lt;[^&gt;]+&gt;</code></td><td>HTMLタグ</td><td>&lt;div>&lt;span>　etc.</td><td>タグ削除</td></tr><tr><td><code>(\w+)@(\w+\.\w+)</code></td><td>メールアドレス</td><td><code>user@example.com</code></td><td><code>$1 [at] $2</code></td></tr></tbody></table></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc14">サンプル１：「HTMLタグ」を消去する</span></h4>



<ul class="wp-block-list">
<li><strong>ショートカット：Ctrl + R</strong></li>



<li><strong>①「正規表現を使用する」をクリック</strong></li>
</ul>



<ul class="wp-block-list">
<li>「検索欄」に「HTMLタグの正規表現」<code><strong>&lt;[^&gt;]+&gt;</strong></code>を入力</li>



<li>「置換欄」には何も入力しない</li>
</ul>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="369" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/13_kensaku-1024x369.png" alt="" class="wp-image-5970" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/13_kensaku-1024x369.png 1024w, https://www.kemmy-it.com/wp-content/uploads/2025/09/13_kensaku-300x108.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/13_kensaku-768x277.png 768w, https://www.kemmy-it.com/wp-content/uploads/2025/09/13_kensaku.png 1048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>実行結果</li>
</ul>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="231" src="https://www.kemmy-it.com/wp-content/uploads/2025/09/14_kensaku-1024x231.png" alt="" class="wp-image-5972" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/09/14_kensaku-1024x231.png 1024w, https://www.kemmy-it.com/wp-content/uploads/2025/09/14_kensaku-300x68.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/09/14_kensaku-768x173.png 768w, https://www.kemmy-it.com/wp-content/uploads/2025/09/14_kensaku.png 1180w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc15">トラブルシュート</span></h2>



<h3 class="wp-block-heading"><span id="toc16">複数ファイルにまたがる検索で、閉じているファイルが検索対象にならない</span></h3>



<p><strong>原因は、主に「除外設定」や「検索対象の制限」によるもの</strong>です。以下に、原因と対策を紹介します。</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc17">ファイル・フォルダ名称が .gitignore に記載されている</span></h4>



<ul class="wp-block-list">
<li>VSCodeはデフォルトで <code>.gitignore</code> に記載されたファイル・フォルダを検索対象から除外します。</li>



<li><strong>対策</strong>
<ul class="wp-block-list">
<li><strong>.gitignore の除外を無視する</strong>
<ul class="wp-block-list">
<li>設定画面で、検索＞gitignoreによる除外を無視　をONにする</li>
</ul>
</li>
</ul>
</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc18">search.exclude設定による除外</span></h4>



<ul class="wp-block-list">
<li>.vscode/setteigs.json やユーザー設定で <code>search.exclude</code> が指定されていると、対象外になります。</li>



<li><strong>対策</strong>
<ul class="wp-block-list">
<li>ファイルの内容を確認し除外対象から外します</li>
</ul>
</li>
</ul>



<p><code>search.exclude</code>の例</p>



<pre class="wp-block-code"><code>"search.exclude": {
  "**/node_modules": true,
  "**/dist": true
}</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc19">インデックスの破損</span></h4>



<ul class="wp-block-list">
<li>VSCodeの検索は内部的にインデックスを使って高速化しています。これが破損していると検索結果が不完全になることがあります。</li>



<li><strong>対策</strong>
<ul class="wp-block-list">
<li>インデックスの不具合が疑われる場合は、VSCodeを再起動してみてください</li>
</ul>
</li>
</ul>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc20">まとめ</span></h2>



<ul class="wp-block-list">
<li><strong>検索オプション</strong><br>大文字小文字の区別、単語単位、正規表現などを柔軟に切り替え可能。</li>



<li><strong>正規表現</strong><br>パターン検索やグループ置換で複雑な編集も一括処理できる。</li>



<li><strong>複数ファイル対応</strong><br>未開ファイルも検索対象になるが、<code>.gitignore</code> や <code>search.exclude</code> に注意。</li>



<li><strong>拡張機能</strong><br>検索対象の拡張やプレビュー機能でさらに効率化。</li>



<li><strong>設定管理</strong><br>検索除外パターンは <code>settings.json</code> に保存可能。精度の高い検索には明示的な指定が有効。</li>
</ul>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Visual Studio 2022】C#開発に最適化する徹底ガイド</title>
		<link>https://www.kemmy-it.com/2025/07/19/visual_studio_c_optimization/</link>
		
		<dc:creator><![CDATA[Kemmy]]></dc:creator>
		<pubDate>Sat, 19 Jul 2025 05:18:19 +0000</pubDate>
				<category><![CDATA[Visual Studio]]></category>
		<guid isPermaLink="false">https://www.kemmy-it.com/?p=5165</guid>

					<description><![CDATA[本ブログではVisual Studio 2022をC#向けに、徹底的に最適化する手順を紹介します。初期セットアップから拡張機能、パフォーマンス改善、デバッグ効率化まで、実践的な内容を網羅します。 目次 Visual St [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>本ブログではVisual Studio 2022をC#向けに、徹底的に最適化する手順を紹介します。初期セットアップから拡張機能、パフォーマンス改善、デバッグ効率化まで、実践的な内容を網羅します。</p>




  <div id="toc" class="toc tnt-number-detail toc-center tnt-number_detail border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-14" checked><label class="toc-title" for="toc-checkbox-14">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Visual Studio 2022 開発環境の条件</a></li><li><a href="#toc2" tabindex="0">Visual Studio 2022 インストールの見直し</a><ol><li><a href="#toc3" tabindex="0">Visual Studioインストール時のワークロード</a></li><li><a href="#toc4" tabindex="0">ユニットテストツール（MSTest V2/xUnit）</a></li><li><a href="#toc5" tabindex="0">Gitによるソース管理</a></li><li><a href="#toc6" tabindex="0">Azure開発</a></li><li><a href="#toc7" tabindex="0">モバイル開発（.NET MAUI）</a></li><li><a href="#toc8" tabindex="0">エディタの設定調整</a><ol><li><a href="#toc9" tabindex="0">コーディングスタイルの統一（EditorConfig）</a></li><li><a href="#toc10" tabindex="0"> Live Share（リアルタイム共同編集）</a></li><li><a href="#toc11" tabindex="0">コード分析と警告</a></li></ol></li><li><a href="#toc12" tabindex="0">拡張機能で機能強化</a></li><li><a href="#toc13" tabindex="0">パフォーマンスの最適化</a></li><li><a href="#toc14" tabindex="0">デバッグ機能の強化</a></li></ol></li><li><a href="#toc15" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Visual Studio 2022 開発環境の条件</span></h2>



<p><strong>C#による多様なアプリケーション開発に対応できる万能な環境</strong>を整えます。</p>



<p>プロジェクトの種類に応じて必要最小限を選ぶのもOKですが、最初は広めに入れておくと将来的にスムーズに対応できます。</p>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc2">Visual Studio 2022 インストールの見直し</span></h2>



<h3 class="wp-block-heading"><span id="toc3">Visual Studioインストール時のワークロード</span></h3>



<p>以下のワークロードをインストールする事で、デスクトップアプリとWebアプリの開発に対応できます。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="845" height="114" src="https://www.kemmy-it.com/wp-content/uploads/2025/05/01_VS_Kankyo.png" alt="" class="wp-image-5173" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/05/01_VS_Kankyo.png 845w, https://www.kemmy-it.com/wp-content/uploads/2025/05/01_VS_Kankyo-300x40.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/05/01_VS_Kankyo-768x104.png 768w" sizes="(max-width: 845px) 100vw, 845px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>.NETデスクトップ開発<br>Windows FormsやWPFなどのデスクトップアプリケーションを開発するために必要なツール群が含まれます。<br>WinForms Designer や XAML Designer、ローカルデバッグ環境 がセットアップされるため、GUIアプリ開発を行う場合は必須です。</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>ASP.NETとWeb開発<br>Webアプリ（ASP.NET Core, MVC, Razor Pagesなど）を開発する際に必要です。<br>Visual Studio 2022にはBlazor（WebAssembly）開発機能も含まれており、サーバー／クライアント両方をC#で書ける最新開発スタイルをサポートしています。</li>
</ul>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc4">ユニットテストツール（MSTest V2/xUnit）</span></h3>



<p>テストツールを使うことで、<strong>バグの少ない・変更に強い・保守しやすいコード</strong>を実現できます。</p>



<ul class="wp-block-list">
<li><strong>MSTest V2の使用</strong><br>必要なパッケージのインストール方法や具体的な使用方法は「<a href="https://www.kemmy-it.com/2025/05/10/visual_studio_unittest_mstest/"><strong>MSTest V2</strong>によるユニットテスト</a>」を参照下さい。</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>xUnitの使用</strong><br><strong>MSTest V2</strong>と同様、必要なパッケージのインストール方法や具体的な使用方法は「<a href="https://www.kemmy-it.com/2025/05/10/visual_studio_unittest_mstest/"><strong>MSTest V2</strong>によるユニットテスト</a>」を参照下さい。</li>
</ul>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc5">Gitによるソース管理</span></h3>



<p>バージョン毎のソース管理や複数人によるプロジェクト作成時には、ソースの管理ツールは欠かせません。一般的に使用されている「Git」及び「GitHub」は必須と言えます。</p>



<p>使用にあたっては、下記リンク先のブログを参考にしてください。</p>



<ul class="wp-block-list">
<li></li>
</ul>



<ul class="wp-block-list">
<li><a href="https://www.kemmy-it.com/2025/05/19/visual_studio_git/">C#ソース管理　Gitローカル編</a></li>
</ul>



<ul class="wp-block-list">
<li><a href="https://www.kemmy-it.com/2025/05/26/visual_studio_github/">C#ソース管理　GitHubリモート編</a></li>
</ul>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc6">Azure開発</span></h3>



<p>近年、クラウドネイティブな開発がますます重要視されています。その中心にあるのが、Microsoft Azure。Visual Studio 2022を使えば、ローカルのC#プロジェクトからシームレスにクラウドへ展開することが可能です。</p>



<p>Azure開発 を行うのであれば、Visual Studio インストーラーを起動し、ワークロードから <strong>「Azure 開発」</strong>をインストールしておきましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="415" height="115" src="https://www.kemmy-it.com/wp-content/uploads/2025/07/02_VS_Kankyo.png" alt="" class="wp-image-5618" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/07/02_VS_Kankyo.png 415w, https://www.kemmy-it.com/wp-content/uploads/2025/07/02_VS_Kankyo-300x83.png 300w" sizes="(max-width: 415px) 100vw, 415px" /></figure>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc7">モバイル開発（.NET MAUI）</span></h3>



<p>「スマホアプリ開発って難しそう…？」と思っている人が多いかもしれませんが、Visual Studio と .NET MAUI を使えば、C#の知識だけで iOS・Android・Windows に対応したモバイルアプリを一つのコードで開発できます。</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p>以前は、<strong>Xamarin（ザマリン）</strong>を使用して作成していましたが、Microsoftは <strong>2024年5月1日をもって サポートを終了</strong> しました。</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p>.NET MAUI（Multi-platform App UI）は<strong>Xamarinの後継で</strong>、iOS・Android・Windowsのクロスプラットフォーム開発が可能です。</p>



<p>モバイル開発を行うのであれば、<strong>「.NET マルチプラットフォーム アプリの UI 開発」</strong>ワークロードのインストールしておきましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="422" height="112" src="https://www.kemmy-it.com/wp-content/uploads/2025/07/03_VS_Kankyo.png" alt="" class="wp-image-5620" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/07/03_VS_Kankyo.png 422w, https://www.kemmy-it.com/wp-content/uploads/2025/07/03_VS_Kankyo-300x80.png 300w" sizes="(max-width: 422px) 100vw, 422px" /></figure>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc8">エディタの設定調整</span></h3>



<p>複数人で共同作業を行う場合、エディタや開発環境の設定を工夫することで<strong>作業効率や品質の統一</strong>がぐっと向上します。以下は Visual Studio（または他のエディタでも応用可能）でのおすすめ設定です。</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc9">コーディングスタイルの統一（EditorConfig）</span></h4>



<ul class="wp-block-list">
<li><strong>.editorconfig ファイルを導入</strong>
<ul class="wp-block-list">
<li>インデント（スペース/タブ）、最大行長、命名規則などをプロジェクト単位で統一できます。</li>



<li>Visual Studio は <code>.editorconfig</code> を自動で読み込むので、個人の設定に関係なく統一が保たれます。</li>
</ul>
</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc10"> Live Share（リアルタイム共同編集）</span></h4>



<ul class="wp-block-list">
<li>Visual Studio には「<strong>Live Share</strong>」機能があり、他のメンバーと<strong>リアルタイムでコードを共有・共同編集</strong>できます。</li>
</ul>



<ul class="wp-block-list">
<li>画面共有やチャット、コメントも可能。</li>



<li>デバッグセッションも共有できるので、ペアプロにも最適！</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc11">コード分析と警告</span></h4>



<ul class="wp-block-list">
<li><strong>StyleCop / Roslyn Analyzer / ReSharper</strong> を導入すると、
<ul class="wp-block-list">
<li>コーディングルールの違反を<strong>自動で警告・修正提案</strong></li>



<li>チームでの品質維持につながる</li>
</ul>
</li>
</ul>



<ul class="wp-block-list">
<li></li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc12">拡張機能で機能強化</span></h3>



<p>Visual Studio Marketplaceから拡張機能をインストールすることで、機能を大幅に拡張できます。</p>



<ul class="wp-block-list">
<li><strong>Roslynator</strong>：C#コードの解析・リファクタ支援</li>



<li><strong>CodeMaid</strong>：コードの整形とクリーンアップ</li>



<li><strong>Visual Studio IntelliCode</strong>：AIによるコード補完の精度向上</li>



<li><strong>GitHub Extension for Visual Studio</strong>：GitHub連携を強化</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc13">パフォーマンスの最適化</span></h3>



<p>Visual Studioは非常に高機能なため、設定次第で起動やビルド時間が変わります。</p>



<ul class="wp-block-list">
<li><code>ツール &gt; オプション &gt; プロジェクトとソリューション &gt; ビルドと実行</code>
<ul class="wp-block-list">
<li>「詳細なビルド出力を抑制」してログ負荷を軽減</li>
</ul>
</li>



<li>不要な拡張機能やワークロードはアンインストール</li>



<li>SSDにプロジェクトファイルを配置</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc14">デバッグ機能の強化</span></h3>



<p>デバッグはC#開発において重要な工程です。</p>



<ul class="wp-block-list">
<li><code>ウィンドウ &gt; 自動</code>, <code>ローカル</code>, <code>ウォッチ</code>, <code>即時ウィンドウ</code> を活用</li>



<li>条件付きブレークポイント、ログポイントの使用</li>



<li><code>デバッグ &gt; オプション &gt; 全般</code> で「ソース サーバー サポート」を有効化すると、シンボル読み込みが高速化</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc15">まとめ</span></h2>



<p>Visual Studio 2022は、正しく最適化することでC#開発において非常に高い生産性を実現できます。</p>



<p>開発効率を高めるためには、初期インストールから日々のデバッグ、チーム開発に至るまで、細かい設定を積み重ねていくことが重要です。</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Visual Studio 2022 C# デバッグ入門】非同期コードのデバッグ方法を徹底解説　「例外処理・ブレークポイント編」</title>
		<link>https://www.kemmy-it.com/2025/06/28/visual_studio_debug_async01/</link>
		
		<dc:creator><![CDATA[Kemmy]]></dc:creator>
		<pubDate>Sat, 28 Jun 2025 06:08:03 +0000</pubDate>
				<category><![CDATA[Visual Studio]]></category>
		<guid isPermaLink="false">https://www.kemmy-it.com/?p=5575</guid>

					<description><![CDATA[C#の非同期プログラミング（async/await）は、UIの応答性を保ったり、バックグラウンド処理を効率化する際に非常に役立ちます。 しかし、非同期コードのデバッグは慣れるまではやや難解に感じるかもしれません。 今回は [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p></p>



<p>C#の非同期プログラミング（async/await）は、UIの応答性を保ったり、バックグラウンド処理を効率化する際に非常に役立ちます。</p>



<p>しかし、<strong>非同期コードのデバッグは慣れるまではやや難解</strong>に感じるかもしれません。</p>



<p>今回はコンソールアプリを例にして、<strong>非同期処理（async/await）のデバッグ方法「例外処理・ブレークポイント」について具体的に</strong>紹介します。</p>



<ul class="wp-block-list">
<li><strong>対象者</strong>
<ul class="wp-block-list">
<li>コンソールアプリで async/await を使い始めた初〜中級者</li>



<li>非同期処理の例外やブレークポイント操作を学びたい方</li>
</ul>
</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>




  <div id="toc" class="toc tnt-number-detail toc-center tnt-number_detail border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-16" checked><label class="toc-title" for="toc-checkbox-16">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Visual Studio 2022 同期/非同期メソッドのデバッグの違い</a></li><li><a href="#toc2" tabindex="0">非同期プログラム（コンソールアプリ）のデバッグ方法</a><ol><li><a href="#toc3" tabindex="0">ブレークポイントの使い方</a></li><li><a href="#toc4" tabindex="0">非同期処理での例外の捕捉</a></li><li><a href="#toc5" tabindex="0">非同期例外のデバッグTips</a></li><li><a href="#toc6" tabindex="0">ログ出力による追跡</a></li><li><a href="#toc7" tabindex="0">ステップ実行と動作の巻き戻し</a></li><li><a href="#toc8" tabindex="0">呼び出し履歴（コールスタック）の活用</a><ol><li><a href="#toc9" tabindex="0">呼び出し履歴（コールスタック）の使い方</a></li></ol></li></ol></li><li><a href="#toc10" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Visual Studio 2022 同期/非同期メソッドのデバッグの違い</span></h2>



<p>同期メソッドと非同期メソッドの主な違いを下表にまとまめしたが、非同期メソッドの最大の注意点は「<strong>await の前後で処理の流れが途切れるように見える</strong>」ことです。</p>



<figure class="wp-block-flexible-table-block-table"><table class=""><thead><tr><th>№</th><th>観点</th><th>同期メソッド</th><th>非同期メソッド<br>（async/await）</th></tr></thead><tbody><tr><td>1</td><td>実行の流れ</td><td style="text-align:left">順次的に進行</td><td style="text-align:left">タスクを分割してスレッドを解放</td></tr><tr><td>2</td><td>ブレークの挙動</td><td style="text-align:left">単純な流れを追える</td><td style="text-align:left">await 前後でスレッドが切り替わる可能性あり</td></tr><tr><td>3</td><td>コールスタックの見え方</td><td style="text-align:left">そのまま見える</td><td style="text-align:left"><code>async</code> の内部状態が特殊な構造になる</td></tr><tr><td>4</td><td>ステップ実行の動き</td><td style="text-align:left">直線的に進む</td><td style="text-align:left"><code>await</code> 後はジャンプしたように見える場合あり</td></tr></tbody></table></figure>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc2">非同期プログラム（コンソールアプリ）のデバッグ方法</span></h2>



<p>下記のサンプルプログラムは非同期に HTTP リクエストを送信し、外部の Web API（<code>https://jsonplaceholder.typicode.com/posts/1</code>）からデータを取得。そのレスポンスをコンソールに表示するサンプルです。</p>



<p>このURLは「投稿（posts）」の中の <strong>IDが1の投稿データ</strong> を取得します。アクセスすると、以下のようなJSON形式のデータが返ってきます。</p>



<p>{<br>&#8220;userId&#8221;: 1,<br>&#8220;id&#8221;: 1,<br>&#8220;title&#8221;: &#8220;sunt aut facere repellat provident occaecati excepturi optio reprehenderit&#8221;,<br>&#8220;body&#8221;: &#8220;quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto&#8221;<br>}</p>



<p>※ここではスレッドの切り替わりを確認する為に、await の前後にスレッドIDを表示する命令を挿入しています。</p>



<pre class="wp-block-code"><code>using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string&#91;] args)
    {
        Console.WriteLine("処理開始");
        try
        {
Console.WriteLine($"Main開始スレッドID: {Thread.CurrentThread.ManagedThreadId}");
            var result = await FetchDataAsync("https://jsonplaceholder.typicode.com/posts/1");
Console.WriteLine($"Main終了スレッドID: {Thread.CurrentThread.ManagedThreadId}");
            Console.WriteLine("取得結果:");
            Console.WriteLine(result);
        }
        catch (Exception ex)
        {
            Console.WriteLine($"エラー発生: {ex.Message}");
        }
        Console.WriteLine("処理終了");
    }

    static async Task&lt;string&gt; FetchDataAsync(string url)
    {
        using var httpClient = new HttpClient();
Console.WriteLine($"GetAsync実行前ID: {Thread.CurrentThread.ManagedThreadId}");
        var response = await httpClient.GetAsync(url);
Console.WriteLine($"GetAsync実行ID: {Thread.CurrentThread.ManagedThreadId}");
        response.EnsureSuccessStatusCode(); // ステータスコードがエラーなら例外を発生
        return await response.Content.ReadAsStringAsync();
    }
}</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc3">ブレークポイントの使い方</span></h3>



<ul class="wp-block-list">
<li><code>await</code> の<strong>前後</strong>両方にブレークポイントを置くのが基本。
<ul class="wp-block-list">
<li>処理（スレッド）の切り替わりを追いやすいくなります。</li>
</ul>
</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p>上記サンプルプログラムを実行すると以下のようになります。</p>



<p>「httpClient.GetAsync(url);」　命令実行後にスレッドが切り替わっているのが分かります。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="982" height="287" src="https://www.kemmy-it.com/wp-content/uploads/2025/06/01_VS_debug_async.png" alt="" class="wp-image-5591" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/06/01_VS_debug_async.png 982w, https://www.kemmy-it.com/wp-content/uploads/2025/06/01_VS_debug_async-300x88.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/06/01_VS_debug_async-768x224.png 768w" sizes="(max-width: 982px) 100vw, 982px" /></figure>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc4">非同期処理での例外の捕捉</span></h3>



<p>非同期メソッド内で発生した例外は、通常の <code>try-catch</code> で捕捉できますが、<strong>例外が発生する場所までステップイン</strong>しないと、内部の詳細が見えにくいことがあります。</p>



<p>今回は「ネットワークエラー」を発生させて、例外が発生した瞬間にブレークできるよう以下の設定を行います。</p>



<ul class="wp-block-list">
<li>設定方法
<ul class="wp-block-list">
<li>メニューの「デバッグ」→「ウィンドウ」→「例外設定」で、<code>System.Net.Http.HttpRequestException</code> をチェック</li>
</ul>
</li>
</ul>



<p>他の例外でも、対象となる例外設定にチェックを入れると例外が発生した瞬間にブレークできるようになります。</p>



<p>サンプルプログラムで使用しているURLを存在しないURLに変更して実行してみると、「response.EnsureSuccessStatusCode(); // ステータスコードがエラーなら例外を発生」の箇所でブレークします。<span style="font-size: revert;"></span></p>



<figure class="wp-block-image size-full"><img decoding="async" width="946" height="365" src="https://www.kemmy-it.com/wp-content/uploads/2025/06/02_VS_debug_async.png" alt="" class="wp-image-5593" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/06/02_VS_debug_async.png 946w, https://www.kemmy-it.com/wp-content/uploads/2025/06/02_VS_debug_async-300x116.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/06/02_VS_debug_async-768x296.png 768w" sizes="(max-width: 946px) 100vw, 946px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>デバッグのポイント
<ul class="wp-block-list">
<li>ブレークポイントの設定箇所
<ul class="wp-block-list">
<li>「await httpClient.GetAsync(url);」の前後</li>



<li>catch (Exception ex) の中</li>
</ul>
</li>



<li>ウォッチする変数
<ul class="wp-block-list">
<li>url： 正しく設定されているか？</li>



<li>response：null になる可能性があるか？</li>



<li>ex.Message：実際のエラーメッセージを確認</li>
</ul>
</li>
</ul>
</li>
</ul>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc5">非同期例外のデバッグTips</span></h3>



<ul class="wp-block-list">
<li><code>wait</code> での例外は<strong>メソッド外に伝播</strong>するので、<strong><code>try-catch</code> を呼び出し元にも必ず書く</strong></li>



<li>テータスコードが 404 や 500 のような「正常なHTTPレスポンス」は <code>GetAsync()</code> で例外を投げませんが、<code><strong>EnsureSuccessStatusCode()</strong></code> で例外になる</li>



<li>存在しないホスト名などは DNS で即座に例外となるため、<strong>確実に例外デバッグが行えます</strong></li>
</ul>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc6">ログ出力による追跡</span></h3>



<ul class="wp-block-list">
<li>デバッグログを挟むことで、<strong>await 前後の流れ</strong>や問題の特定がしやすくなります。</li>



<li>本格的には <code>Serilog</code> や <code>NLog</code> を使ってログをファイル出力するのもおすすめです。</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p>■Serilog や NLog の使用方法は下記ブログを参照下さい</p>



<ul class="wp-block-list">
<li>Serilog：<a href="https://www.kemmy-it.com/2025/06/08/visual_studio_debug_serilog01/">【C# デバッグ入門】Serilogの使用方法を徹底解説</a></li>
</ul>



<ul class="wp-block-list">
<li>NLog ：<a href="https://www.kemmy-it.com/2025/06/07/visual_studio_debug_nlog01/">【C#デバッグ入門】NLog の使用方法を徹底開発</a></li>
</ul>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc7">ステップ実行と動作の巻き戻し</span></h3>



<ul class="wp-block-list">
<li>ステップ実行
<ul class="wp-block-list">
<li><code>F10</code>：ステップオーバー</li>



<li><code>F11</code>：ステップイン（async関数内に入れる）</li>



<li><code>Shift + F11</code>：ステップアウト</li>
</ul>
</li>
</ul>



<p><strong>注意点</strong>：<code>await</code> をステップインすると、生成されたステートマシン（裏側のコード）に入ることがあり、慣れないうちは混乱します。</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>動作の巻き戻し
<ul class="wp-block-list">
<li>ブレーク時のブレークポイントをクリックしたまま、実行を戻したい場所までドラッグして放す</li>



<li>黄色い⇒が表示され、そこからステップ実行が可能となる。但し、<strong>状態を完全に巻き戻すわけではない</strong>ので注意が必要。</li>
</ul>
</li>
</ul>



<p>下記は、①でブレークした状態を②まで実行を巻き戻した例。②からステップ実行実行が可能となる。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1000" height="220" src="https://www.kemmy-it.com/wp-content/uploads/2025/06/03_VS_debug_async.png" alt="" class="wp-image-5599" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/06/03_VS_debug_async.png 1000w, https://www.kemmy-it.com/wp-content/uploads/2025/06/03_VS_debug_async-300x66.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/06/03_VS_debug_async-768x169.png 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li></li>
</ul>



<h3 class="wp-block-heading"><span id="toc8">呼び出し履歴（コールスタック）の活用</span></h3>



<p>非同期コードでは<strong>スタックの流れが分かりづらくなる</strong>ため、コールスタックを活用する事も重要です。</p>



<ul class="wp-block-list">
<li>どの<code>await</code>から来たか（呼び出し元）を追える
<ul class="wp-block-list">
<li><code>Main → FetchDataAsync → ParseJsonAsync</code> のように<strong>非同期でも呼び出し経路を視覚化</strong>できる</li>
</ul>
</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>非同期メソッド間の流れが分断されない
<ul class="wp-block-list">
<li>途中の<code>await</code>で中断されても、再開された処理の<strong>文脈が残っている</strong></li>



<li>「このawaitの後に、なぜここに来たのか？」を確認できる</li>
</ul>
</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>例外が発生した場所と、呼び出し元を一度に確認できる</strong>
<ul class="wp-block-list">
<li>非同期処理中に例外が発生したとき、<strong>どの関数から呼ばれ、最終的にどこで例外がスローされたか</strong>がすぐに分かる</li>
</ul>
</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc9">呼び出し履歴（コールスタック）の使い方</span></h4>



<ol class="wp-block-list">
<li>非同期メソッド内でブレークポイント停止</li>



<li>メニュー → [デバッグ] → [ウィンドウ] → <strong>コールスタック</strong>（または <code>Ctrl + Alt + C</code>）</li>



<li>一番下が起点、一番上が現在の位置</li>



<li>各メソッドをダブルクリックすると、ソースにジャンプ可能</li>
</ol>



<figure class="wp-block-image size-full"><img decoding="async" width="799" height="312" src="https://www.kemmy-it.com/wp-content/uploads/2025/06/04_VS_debug_async.png" alt="" class="wp-image-5601" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/06/04_VS_debug_async.png 799w, https://www.kemmy-it.com/wp-content/uploads/2025/06/04_VS_debug_async-300x117.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/06/04_VS_debug_async-768x300.png 768w" sizes="(max-width: 799px) 100vw, 799px" /></figure>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc10">まとめ</span></h2>



<p>非同期処理でも以下の点を押さえておけば効率的なデバッグが可能です。</p>



<ul class="wp-block-list">
<li><code>await</code> の前後にブレークポイント</li>



<li>ウォッチやクイックウォッチで変数確認</li>



<li>ステップ実行（F10/F11）で処理を追う</li>



<li>例外ウィンドウでエラーの瞬間を補足</li>



<li>呼び出し履歴（コールスタック）を活用</li>
</ul>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Visual Studio 2022 C# デバッグ入門 】「例外設定」機能を徹底解説</title>
		<link>https://www.kemmy-it.com/2025/06/12/visual_studio_debug_exception01/</link>
		
		<dc:creator><![CDATA[Kemmy]]></dc:creator>
		<pubDate>Wed, 11 Jun 2025 21:21:33 +0000</pubDate>
				<category><![CDATA[Visual Studio]]></category>
		<guid isPermaLink="false">https://www.kemmy-it.com/?p=5305</guid>

					<description><![CDATA[本ブログでは初学者向けに、デバッグに役立つ「例外設定」機能を紹介します。 例外がキャッチされてるのに原因が分からない…？そんな悩みを解決するのが、Visual Studio の「例外設定」機能です。C# プログラマ向けに [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>本ブログでは初学者向けに、デバッグに役立つ<strong><span class="marker-under-red">「例外設定」機能</span></strong>を紹介します。</p>



<p><strong>例外がキャッチされてるのに原因が分からない…？</strong><br>そんな悩みを解決するのが、Visual Studio の<strong>「例外設定」機能</strong>です。C# プログラマ向けに、Visual Studio の「例外設定」機能の基本から活用テクまでわかりやすく紹介します。</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>




  <div id="toc" class="toc tnt-number-detail toc-center tnt-number_detail border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-18" checked><label class="toc-title" for="toc-checkbox-18">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Visual Studio 2022 C#「 例外設定」とは？</a><ol><li><a href="#toc2" tabindex="0">Visual Studio C#「 例外設定」の使い方</a></li><li><a href="#toc3" tabindex="0">Visual Studio C# でチェックを推奨する主なCLR例外</a></li></ol></li><li><a href="#toc4" tabindex="0">「Visual Studio C#」カスタム例外</a><ol><li><a href="#toc5" tabindex="0">カスタム例外を活用するメリット</a></li><li><a href="#toc6" tabindex="0">カスタム例外を使用すべき状況</a></li><li><a href="#toc7" tabindex="0">Visual Studio C#「カスタム例外」の作成手順</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Visual Studio 2022 C#「 例外設定」とは？</span></h2>



<p><strong>例外設定ウィンドウ</strong>では、以下のようなことができます。</p>



<ul class="wp-block-list">
<li><strong>特定の例外が発生した瞬間（スローされた瞬間）に中断</strong>（<code style="background-color: rgb(255, 255, 255); font-size: 18px;">try-catch</code> で捕捉されていても）</li>



<li><strong>例外の種類ごとに中断の有無を設定</strong></li>



<li><strong>独自に定義したカスタム例外も追加可能</strong></li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc2">Visual Studio C#「 例外設定」の使い方</span></h3>



<ol class="wp-block-list">
<li><strong>[デバッグ] &gt; [ウィンドウ] &gt; [例外設定]</strong> を選択</li>



<li>表示されたウィンドウで例えば
<ul class="wp-block-list">
<li>Common Language Exception の<code>System.</code>DivideByZeroException（0割り) にチェックを入れる</li>
</ul>
</li>



<li>これで、その例外がスローされた瞬間に Visual Studio が中断してくれます</li>
</ol>



<figure class="wp-block-image size-full"><img decoding="async" width="743" height="218" src="https://www.kemmy-it.com/wp-content/uploads/2025/06/01_VS_Excption-1.png" alt="" class="wp-image-5456" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/06/01_VS_Excption-1.png 743w, https://www.kemmy-it.com/wp-content/uploads/2025/06/01_VS_Excption-1-300x88.png 300w" sizes="(max-width: 743px) 100vw, 743px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p>■簡単な具体例</p>



<p>通常は <code>catch</code> に入って処理が続きますが、<strong><span class="marker-under-red">例外設定で <code>DivideByZeroException</code> にチェックを入れておくと、例外発生の行で中断</span></strong>してくれます。これにより、<strong><span class="marker-under-red">例外の発生箇所を正確に特定</span></strong>できます。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="463" src="https://www.kemmy-it.com/wp-content/uploads/2025/06/02_VS_Excption-1024x463.png" alt="" class="wp-image-5457" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/06/02_VS_Excption-1024x463.png 1024w, https://www.kemmy-it.com/wp-content/uploads/2025/06/02_VS_Excption-300x136.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/06/02_VS_Excption-768x347.png 768w, https://www.kemmy-it.com/wp-content/uploads/2025/06/02_VS_Excption.png 1086w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc3">Visual Studio C# でチェックを推奨する主なCLR例外</span></h3>



<ul class="wp-block-list">
<li><code>System.NullReferenceException</code>（ヌル参照例外）</li>



<li><code>System.AccessViolationException</code>（メモリアクセス違反）</li>



<li><code>System.DivideByZeroException</code>（ゼロ除算例外）</li>



<li><code>System.InvalidOperationException</code>（無効な操作）</li>



<li><code>System.IndexOutOfRangeException</code>（配列の範囲外アクセス）</li>



<li><code>System.StackOverflowException</code>（スタックオーバーフロー）</li>



<li><code>System.OutOfMemoryException</code>（メモリ不足）</li>



<li><code>System.ArgumentException</code>（無効な引数）</li>



<li><code>System.ArgumentNullException</code>（ヌル引数）</li>



<li><code>System.ArgumentOutOfRangeException</code>（範囲外の引数）</li>



<li><code>System.IO.IOException</code>（入出力エラー）</li>



<li><code>System.FormatException</code>（フォーマットエラー）</li>



<li><code>System.TypeInitializationException</code>（型の初期化エラー）</li>
</ul>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>CLR例外</strong>
<ul class="wp-block-list">
<li>.NET の <strong>Common Language Runtime (CLR)</strong> によって管理される例外。これは、C# や VB.NET などの .NET 言語で発生する例外を統一的に処理するための仕組です。</li>
</ul>
</li>



<li>上記の推奨するCLR例外の中には標準でチェックが入っている場合もあります。</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc4">「Visual Studio C#」カスタム例外</span></h2>



<p>C# では<strong><span class="marker-under-red">特定のエラー状況</span></strong>を、標準の <code>Exception</code> クラスを継承する事で<strong><span class="marker-under-red">自作の例外</span></strong>として定義する事も可能です。</p>



<p>自作の例外（例：<code>MyCustomException</code>）は、例外設定ウィンドウの「＋」ボタンから追加すれば、<strong>CLR</strong>と同様に中断対象にできます。</p>



<p>※名前空間を定義している場合は、名前空間名を付けて追加する</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc5">カスタム例外を活用するメリット</span></h3>



<ul class="wp-block-list">
<li><strong>広範囲に try-catch を使っているコード</strong>でも、例外の発生箇所を特定しやすくなる</li>



<li><strong>非同期処理や外部ライブラリの例外</strong>も追いやすくなる</li>



<li><strong>「マイコードのみ」設定</strong>と組み合わせると、ユーザーコードに限定して中断可能となる</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc6">カスタム例外を使用すべき状況</span></h3>



<ul class="wp-block-list">
<li><strong>ドメイン固有のエラーを表現したい</strong>
<ul class="wp-block-list">
<li>例：銀行システムで「残高不足」を表す <code>InsufficientFundsException</code></li>



<li>例：ECサイトで「在庫切れ」を表す <code>OutOfStockException</code></li>
</ul>
</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>特定のエラーに対して専用の処理をしたい</strong>
<ul class="wp-block-list">
<li>例：<code>FileProcessingException</code> を作成し、ファイル関連のエラーを一括管理</li>



<li>例：<code>InvalidUserInputException</code> を作成し、ユーザー入力エラーを適切に処理</li>
</ul>
</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>標準の例外では意味が曖昧な場合</strong>
<ul class="wp-block-list">
<li><code>ArgumentException</code> ではなく <code>InvalidPasswordException</code> など、より明確なエラー名を付けることで可読性向上</li>
</ul>
</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>エラー情報を追加したい</strong>
<ul class="wp-block-list">
<li>例：<code>DatabaseConnectionException</code> に <code>ConnectionString</code> を保持し、ログ出力時に詳細情報を提供</li>
</ul>
</li>
</ul>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc7">Visual Studio C#「カスタム例外」の作成手順</span></h3>



<p>カスタム例外のサンプルとしてファイルが存在しない場合に、catch で補足するのではなく、例外をスローした行で実行を中断する設定を紹介します。</p>



<ul class="wp-block-list">
<li><strong>ソースコード</strong>
<ul class="wp-block-list">
<li>Exceptionクラスを継承したカスタム例外「FileMissingException」を作成
<ul class="wp-block-list">
<li><code>FilePath</code> プロパティ を追加し、例外発生時に 問題のあるファイルのパスを保持</li>



<li>コンストラクタで <code>message</code> と <code>filePath</code> を受け取り、<code>base(message)</code> で親クラスの <code>Exception</code> にメッセージを渡す</li>
</ul>
</li>



<li><strong>処理部分</strong>
<ul class="wp-block-list">
<li>ファイルが存在するかを確認し、ファイルがなかったら「FileMissingException」例外をスローする</li>



<li>「FileMissingException」例外はcatchでも補足</li>
</ul>
</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="974" height="636" src="https://www.kemmy-it.com/wp-content/uploads/2025/06/03_VS_Excption.png" alt="" class="wp-image-5462" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/06/03_VS_Excption.png 974w, https://www.kemmy-it.com/wp-content/uploads/2025/06/03_VS_Excption-300x196.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/06/03_VS_Excption-768x501.png 768w" sizes="(max-width: 974px) 100vw, 974px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>例外設定にカスタム例外「FileMissingException」を追加</strong>
<ul class="wp-block-list">
<li>[デバッグ] &gt; [ウィンドウ] &gt; [例外設定] で例外設定画面を表示</li>



<li>今回は、①の「Common Language Runtime Exceptions」を選択</li>



<li>②の追加「＋」がクリックできるようになるのでクリック</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="528" height="232" src="https://www.kemmy-it.com/wp-content/uploads/2025/06/04_VS_Excption.png" alt="" class="wp-image-5463" style="width:595px;height:auto" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/06/04_VS_Excption.png 528w, https://www.kemmy-it.com/wp-content/uploads/2025/06/04_VS_Excption-300x132.png 300w" sizes="(max-width: 528px) 100vw, 528px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>入力欄にカスタム例外の名称を入力（namespaceを定義している場合はnamespace名を付加）</li>
</ul>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="551" height="234" src="https://www.kemmy-it.com/wp-content/uploads/2025/06/05_VS_Excption.png" alt="" class="wp-image-5464" style="width:592px;height:auto" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/06/05_VS_Excption.png 551w, https://www.kemmy-it.com/wp-content/uploads/2025/06/05_VS_Excption-300x127.png 300w" sizes="(max-width: 551px) 100vw, 551px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="593" height="227" src="https://www.kemmy-it.com/wp-content/uploads/2025/06/06_VS_Excption.png" alt="" class="wp-image-5465" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/06/06_VS_Excption.png 593w, https://www.kemmy-it.com/wp-content/uploads/2025/06/06_VS_Excption-300x115.png 300w" sizes="(max-width: 593px) 100vw, 593px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>Debugモードで実行すると、例外のスローで実行が中断する</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="1022" height="640" src="https://www.kemmy-it.com/wp-content/uploads/2025/06/07_VS_Excption.png" alt="" class="wp-image-5466" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/06/07_VS_Excption.png 1022w, https://www.kemmy-it.com/wp-content/uploads/2025/06/07_VS_Excption-300x188.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/06/07_VS_Excption-768x481.png 768w" sizes="(max-width: 1022px) 100vw, 1022px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li>Debugモードなしで実行すると、catchで補足される</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="969" height="637" src="https://www.kemmy-it.com/wp-content/uploads/2025/06/08_VS_Excption.png" alt="" class="wp-image-5471" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/06/08_VS_Excption.png 969w, https://www.kemmy-it.com/wp-content/uploads/2025/06/08_VS_Excption-300x197.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/06/08_VS_Excption-768x505.png 768w" sizes="(max-width: 969px) 100vw, 969px" /></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Visual Studio 2022 C# デバッグ入門 】Serilogの使用方法を徹底解説</title>
		<link>https://www.kemmy-it.com/2025/06/08/visual_studio_debug_serilog01/</link>
		
		<dc:creator><![CDATA[Kemmy]]></dc:creator>
		<pubDate>Sun, 08 Jun 2025 09:20:08 +0000</pubDate>
				<category><![CDATA[Visual Studio]]></category>
		<guid isPermaLink="false">https://www.kemmy-it.com/?p=5380</guid>

					<description><![CDATA[前回はNLogの使用方法を紹介しましたが、今回はSerilogです。 Serilogも広く使用されており、NLog と同様にログレベル（Verbose, Debug, Information など）の切り分け・ログファイ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>前回は<strong><a href="https://www.kemmy-it.com/2025/06/07/visual_studio_debug_nlog01/">NLogの使用方法</a>を紹</strong>介しましたが、今回は<strong>Serilog</strong>です。</p>



<p>Serilogも広く使用されており、NLog と同様にログレベル（Verbose, Debug, Information など）の切り分け・ログファイルの出力先・出力形式のカスタマイズなどが簡単に設定できるログライブラリです。</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>使用環境</strong>
<ul class="wp-block-list">
<li>Windows 10 Pro 2009 ビルド19045.5854</li>



<li>Visual Studio 2020 Version 17.14.2 </li>



<li>Serilog 4.3.0</li>
</ul>
</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>




  <div id="toc" class="toc tnt-number-detail toc-center tnt-number_detail border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-20" checked><label class="toc-title" for="toc-checkbox-20">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Visual Studio 2022 C# Serilogを使用した本格的なデバッグログ管理</a><ol><li><a href="#toc2" tabindex="0">Visual Studio C# Serilogの主な用途</a></li><li><a href="#toc3" tabindex="0">Visual Studio C# Serilogのログ出力形式</a></li><li><a href="#toc4" tabindex="0">Visual Studio C# Serilogのログレベル一覧（レベルの低い順）</a></li><li><a href="#toc5" tabindex="0">Visual Studio C# Serilogの使用手順</a><ol><li><a href="#toc6" tabindex="0">NuGet Serilogパッケージのインストール</a></li></ol></li><li><a href="#toc7" tabindex="0">Visual Studio C# Serilogの初期設定</a><ol><li><a href="#toc8" tabindex="0">ログ出力先の設定例</a></li><li><a href="#toc9" tabindex="0">ファイル出力設定の主な設定項目一覧</a></li></ol></li><li><a href="#toc10" tabindex="0">Visual Studio C# JSONファイルによるSerilogの設定</a><ol><li><a href="#toc11" tabindex="0">設定手順</a></li></ol></li></ol></li><li><a href="#toc12" tabindex="0">Visual Studio C#　Serilog 動作確認</a><ol><li><a href="#toc13" tabindex="0">Visual Studio C# コード内でSerilogを設定した場合</a></li><li><a href="#toc14" tabindex="0">Visual Studio C# JsonファイルでSerilogを設定した場合</a></li></ol></li><li><a href="#toc15" tabindex="0">Visual Studio C# Serilog まとめ（NLogと比較して）</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Visual Studio 2022 C# Serilogを使用した本格的なデバッグログ管理</span></h2>



<h3 class="wp-block-heading"><span id="toc2">Visual Studio C# Serilogの主な用途</span></h3>



<ol class="wp-block-list">
<li><strong>デバッグ</strong>
<ul class="wp-block-list">
<li>Log.Debug()を使って変数の値や処理の流れを記録し、問題の特定を容易にする</li>
</ul>
</li>



<li><strong>エラートラッキング</strong>
<ul class="wp-block-list">
<li>Log.Error()やLog.Fatal()を使ってエラーメッセージやスタックトレースを記録し、原因を分析する</li>
</ul>
</li>



<li><strong>ユーザーアクションの記録</strong>
<ul class="wp-block-list">
<li>ログインやデータ更新の履歴を<code>Log.Information()</code>で記録し、監査やトラブルシューティングに役立てる</li>
</ul>
</li>



<li><strong>パフォーマンス監視</strong>
<ul class="wp-block-list">
<li>アプリケーションの処理時間を測定し、ボトルネックを特定する</li>
</ul>
</li>
</ol>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc3">Visual Studio C# Serilogのログ出力形式</span></h3>



<figure class="wp-block-flexible-table-block-table"><table class=""><thead><tr><th>№</th><th>出力先</th><th>ファイル形式</th><th>用　途</th></tr></thead><tbody><tr><td>１</td><td>コンソール</td><td>標準出力（テキスト）</td><td style="text-align:left">開発時のデバッグ、リアルタイム監視</td></tr><tr><td>2</td><td>ファイル</td><td style="text-align:left">.txt .log .json .csv .xml</td><td style="text-align:left">ログの保存・分析・長期記録</td></tr><tr><td>３</td><td>データベース</td><td style="text-align:left">SQLテーブル</td><td style="text-align:left">監査ログ・履歴管理・検索性向上</td></tr><tr><td>４</td><td>クラウド</td><td style="text-align:left">JSON, XML, Parquet</td><td style="text-align:left">分析・可視化、クラウドサービス連携</td></tr><tr><td>５</td><td>イベントログ</td><td style="text-align:left">Windows Event Log</td><td style="text-align:left">システム監視、セキュリティログ</td></tr><tr><td>６</td><td>メッセージキュー</td><td style="text-align:left">Kafka, RabbitMQ</td><td style="text-align:left">分散システムのログ管理</td></tr><tr><td>７</td><td>リモートサーバ</td><td style="text-align:left">Syslog, HTTP API</td><td style="text-align:left">集中管理、ログ集約</td></tr><tr><td>８</td><td>メール通知</td><td style="text-align:left">HTML, Plain Text</td><td style="text-align:left">重要なエラー通知</td></tr><tr><td>９</td><td>チャットツール</td><td style="text-align:left">Slack, Tearms, Discord</td><td style="text-align:left">運用チームへの即時通知</td></tr></tbody></table></figure>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc4">Visual Studio C# Serilogのログレベル一覧（レベルの低い順）</span></h3>



<figure class="wp-block-flexible-table-block-table"><table class=""><thead><tr><th>順位</th><th>レベル</th><th>機　能</th></tr></thead><tbody><tr><td>1</td><td>Verbose</td><td style="text-align:left">最も詳細なログレベル。すべての動作を記録</td></tr><tr><td>2</td><td>Debug</td><td style="text-align:left">開発・トラブルシュート用</td></tr><tr><td>3</td><td>Information</td><td style="text-align:left">主要なイベント（起動、終了、処理完了など）を記録</td></tr><tr><td>4</td><td>Warning</td><td style="text-align:left">警告（問題の可能性あり）</td></tr><tr><td>5</td><td>Error</td><td style="text-align:left">エラー（処理が失敗した場合、例外情報も含む）</td></tr><tr><td>6</td><td>Fatal</td><td style="text-align:left">致命的なエラー（アプリケーションがクラッシュするような重大な問題）</td></tr></tbody></table></figure>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc5">Visual Studio C# Serilogの使用手順</span></h3>



<h4 class="wp-block-heading"><span id="toc6">NuGet Serilogパッケージのインストール</span></h4>



<ul class="wp-block-list">
<li>ソリューションエクスプローラー画面の「プロジェクト」を右クリック→「ＮuＧetパッケージの管理」画面から下記のパッケージをインストールします。
<ul class="wp-block-list">
<li><strong>Serilog</strong>　4.3.0</li>



<li><strong>Serilog.Sinks.Console</strong>　6.0.0</li>



<li><strong>Serilog.Sinks.Debug</strong>　3.0.0</li>



<li><strong>Serilog.Sinks.File</strong>　7.0.0 </li>
</ul>
</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>■パッケージのインストール結果</strong></p>



<figure class="wp-block-image size-full"><img decoding="async" width="784" height="374" src="https://www.kemmy-it.com/wp-content/uploads/2025/06/01_VS_Serilog_install.png" alt="" class="wp-image-5384" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/06/01_VS_Serilog_install.png 784w, https://www.kemmy-it.com/wp-content/uploads/2025/06/01_VS_Serilog_install-300x143.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/06/01_VS_Serilog_install-768x366.png 768w" sizes="(max-width: 784px) 100vw, 784px" /></figure>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc7">Visual Studio C# Serilogの初期設定</span></h3>



<p>アプリケーションの開始時、通常は<code>「Main」</code>やアプリケーションの初期化時にSerilogを設定します。</p>



<p>■設定例</p>



<pre class="wp-block-code"><code> public Form1()
{
    InitializeComponent();
    // フォームを画面の中央に表示
    this.StartPosition = FormStartPosition.CenterScreen;

    //---------------------------------------------------------------------------------
    // Serilogの初期設定
    //---------------------------------------------------------------------------------

    // LoggerConfiguration インスタンスの作成
    Log.Logger = new LoggerConfiguration()

    // 出力先の設定　コンソール/デバッグウィンドウ/ログファイル
    .WriteTo.Console()
    .WriteTo.Debug()

    //rollingInterval: RollingInterval.Day ログファイルを日ごとに作成
　　//ログファイルにはWarningレベル以上のログが記録される
    .WriteTo.File(@"C:\temp\Serilog\serilog_code.txt", 
                restrictedToMinimumLevel: LogEventLevel.Warning, 
                rollingInterval: RollingInterval.Day)

    //コンソール・デバッグウィンドウには、Debugレベル以上のログが記録される
    .MinimumLevel.Debug()
    .CreateLogger();

}</code></pre>



<ul class="wp-block-list">
<li>出力先の設定
<ul class="wp-block-list">
<li>本設定では、コンソールとデバッグウィンドウ及びログファイル</li>
</ul>
</li>



<li>出力レベルの設定
<ul class="wp-block-list">
<li>両方のウィンドウにはDebugレベル以上のメッセージを出力（.MinimumLevel.Debug()）</li>



<li>ログファイルにはWarningレベル以上のメッセージを出力（restrictedToMinimumLevel: LogEventLevel.Warning,）</li>
</ul>
</li>



<li>ログファイルの作成周期
<ul class="wp-block-list">
<li>一日ごとに別ファイルとして作成（rollingInterval: RollingInterval.Day）</li>
</ul>
</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc8">ログ出力先の設定例</span></h4>



<ul class="wp-block-list">
<li><strong>コンソール</strong>
<ul class="wp-block-list">
<li>.WriteTo.Console()</li>
</ul>
</li>



<li><strong>デバッグウィンドウ</strong>
<ul class="wp-block-list">
<li> .WriteTo.Debug()　</li>
</ul>
</li>



<li><strong>ファイル出力</strong>
<ul class="wp-block-list">
<li>.WriteTo.File(@&#8221;C:\temp\Serilog.txt&#8221;, restrictedToMinimumLevel: LogEventLevel.Warning, <br>                         rollingInterval: RollingInterval.Day)</li>
</ul>
</li>



<li><strong>SQL Server</strong>
<ul class="wp-block-list">
<li>.WriteTo.MSSqlServer(&#8220;Server=myServer;Database=myDB;User Id=myUser;Password=myPassword;&#8221;, &#8220;Logs&#8221;)</li>
</ul>
</li>



<li><strong>Elasticsearch</strong>
<ul class="wp-block-list">
<li>.WriteTo.Elasticsearch(new Serilog.Sinks.Elasticsearch.ElasticsearchSinkOptions(new Uri(&#8220;http://localhost:9200&#8221;)))</li>
</ul>
</li>



<li><strong>Syslog（Linux向け）</strong>
<ul class="wp-block-list">
<li>.WriteTo.Syslog()</li>
</ul>
</li>



<li><strong>メール通知</strong>
<ul class="wp-block-list">
<li>.WriteTo.Email(new EmailConnectionInfo{FromEmail = &#8220;noreply@example.com&#8221;,ToEmail = &#8220;admin@example.com&#8221;,MailServer = &#8220;smtp.example.com&#8221;})</li>
</ul>
</li>



<li><strong>Slack通知</strong>
<ul class="wp-block-list">
<li>.WriteTo.Slack(&#8220;https://hooks.slack.com/services/your/webhook/url&#8221;)</li>
</ul>
</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc9">ファイル出力設定の主な設定項目一覧</span></h4>



<p>ファイル出力設定では、さまざまなオプションを指定できます。以下に、主な設定項目を一覧にまとめました。</p>



<figure class="wp-block-flexible-table-block-table"><table class=""><thead><tr><th>№</th><th>設定項目</th><th>説　明</th><th>設定例</th></tr></thead><tbody><tr><td>１</td><td>Path</td><td style="text-align:left">ログファイルの保存場所</td><td style="text-align:left">&#8220;C:/logs/Serilog.txt&#8221;</td></tr><tr><td>2</td><td>rollingInterval</td><td style="text-align:left">ローテーション間隔</td><td style="text-align:left">RollingInterval.Day</td></tr><tr><td>3</td><td>retaindFileCour</td><td style="text-align:left">保持するログファイルの最大数</td><td style="text-align:left">7（7日分）</td></tr><tr><td>4</td><td>fileSizeLimitByte</td><td style="text-align:left">ログファイルの最大サイズ</td><td style="text-align:left">10485760（10MB）</td></tr><tr><td>5</td><td>buffered</td><td style="text-align:left">書き込みのバッファリング</td><td style="text-align:left">true（バッファリング有効）</td></tr><tr><td>6</td><td>flushToDiskInterval</td><td style="text-align:left">ディスクへの書き込み間隔</td><td style="text-align:left">TimeSpan.FromSeconds(5)</td></tr><tr><td>7</td><td>outputTemplate</td><td style="text-align:left">ログのフォーマット</td><td style="text-align:left">{Timestamp:yyyy-MM-dd}</td></tr><tr><td>8</td><td>fotmatter</td><td style="text-align:left">JSON形式等のフォーマット指定</td><td style="text-align:left">new CompactJsonFotmatter()</td></tr><tr><td>9</td><td>restrictedToMinimumLevel</td><td style="text-align:left">出力する最低ログレベル</td><td style="text-align:left">LogEventLevel.Warning</td></tr></tbody></table></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>■設定例</strong></p>



<ul class="wp-block-list">
<li>下記設定では、<strong>1日ごとにログファイルを作成し、最大7日分保持</strong>、<strong>10MBを超えたら新しいファイルを作成</strong>するようになっています。</li>



<li>また、<strong>Warning以上のログのみ記録</strong>され、<strong>バッファリングを有効化</strong>してパフォーマンスを向上させています。</li>
</ul>



<pre class="wp-block-code"><code>Log.Logger = new LoggerConfiguration()
    .WriteTo.File("logs/log.txt",
        rollingInterval: RollingInterval.Day,　　// 日毎にログファイルを作成
        retainedFileCountLimit: 7,　　　　　　　 // ７日文のログを保持
        fileSizeLimitBytes: 10485760,　　　　　　// 10MBを超えたら新しいファイルを作成
        buffered: true,　　　　　　　　　　　　　// <strong>バッファリングを有効化</strong>
        flushToDiskInterval: TimeSpan.FromSeconds(5),　// <strong>ディスクへの書き込み間隔 5秒</strong>
        outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss} &#91;{Level}] {Message}{NewLine}{Exception}",　 
　　　　　　　　//<strong> ログの表示例　2025-06-08 12:33:20 &#91;Error] データベース接続エラー</strong>
　　　　　　　　// <strong>{NewLine}{Exception}：例外が発生した場合、詳細なスタックトレースを表示</strong>
        restrictedToMinimumLevel: LogEventLevel.Warning)　// <strong>Warning以上のログのみ記録</strong>
    .CreateLogger();</code></pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc10">Visual Studio C# JSONファイルによるSerilogの設定</span></h3>



<ul class="wp-block-list">
<li><strong>設定をJSONファイルで管理する利点</strong>
<ul class="wp-block-list">
<li>ソースコードを変更せずにログの設定が可能となる</li>



<li>環境ごとに異なる設定を利用する事ができる（例：serilog.dev.json、serilog.prod.json等）</li>
</ul>
</li>
</ul>



<p><strong>上記だけでも利便性は相当に高いと言えます。</strong></p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>■serilog.jsonの例</strong></p>



<p>この設定では、<strong>コンソールにはＤebugレベル以上</strong>、<strong>ファイルにはWarningレベル以上</strong>のログを出力するようにしています。</p>



<pre class="wp-block-code"><code>{
  "Serilog": {
    "Using": &#91; "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
    "MinimumLevel": "Debug",
    "WriteTo": &#91;
      {
        "Name": "Console",
        "Args": { "restrictedToMinimumLevel": "Debug" }
      },
      {
        "Name": "File",
        "Args": {
          "path": "C:/temp/Serilog/serilog_json.txt",
          "rollingInterval": "Day",
          "restrictedToMinimumLevel": "Warning"
        }
      }
    ],
    "Enrich": &#91; "WithMachineName", "WithThreadId" ]
  }
}</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><span id="toc11">設定手順</span></h4>



<ul class="wp-block-list">
<li><strong><code>serilog.json</code>の作成</strong>
<ul class="wp-block-list">
<li>プロジェクトのルートディレクトリ（<code>bin</code>フォルダの外）に作成します<br>内容は上記通り。</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="693" height="173" src="https://www.kemmy-it.com/wp-content/uploads/2025/06/03_VS_Serilog_json.png" alt="" class="wp-image-5393" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/06/03_VS_Serilog_json.png 693w, https://www.kemmy-it.com/wp-content/uploads/2025/06/03_VS_Serilog_json-300x75.png 300w" sizes="(max-width: 693px) 100vw, 693px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>JSON設定の読み込み</strong>
<ul class="wp-block-list">
<li>C#のコードでJSONファイルを読み込むには下記のパッケージが必要となるので、NuGetパッケージからインストールします。
<ul class="wp-block-list">
<li><strong>Microsoft.Extensions.Configuration.Json </strong></li>



<li><strong>Serilog.Settings.Configuration</strong></li>
</ul>
</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="829" height="546" src="https://www.kemmy-it.com/wp-content/uploads/2025/06/02_VS_Serilog_json-2.png" alt="" class="wp-image-5395" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/06/02_VS_Serilog_json-2.png 829w, https://www.kemmy-it.com/wp-content/uploads/2025/06/02_VS_Serilog_json-2-300x198.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/06/02_VS_Serilog_json-2-768x506.png 768w" sizes="(max-width: 829px) 100vw, 829px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>serilog.jsonファイルのプロパティ設定</strong>
<ul class="wp-block-list">
<li>ファイルを「右クリック」→「プロパティ」でプロパティを表示し、下記項目を設定
<ul class="wp-block-list">
<li>ビルドアクション：コンテンツ</li>



<li>出力ディレクトリコピー：新しい場合はコピーする</li>
</ul>
</li>
</ul>
</li>
</ul>



<ul class="wp-block-list">
<li><strong>プロパティの設定の意味</strong>
<ul class="wp-block-list">
<li>ビルド時に設定ファイルを&nbsp;<code>bin</code>&nbsp;フォルダへコピー</li>



<li>実行時に&nbsp;<code>serilog.json</code>&nbsp;を参照できる（アプリが正しくログ出力できる）</li>



<li>ファイルが変更された場合のみコピーされるため、不要な更新を防ぐ</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="363" height="404" src="https://www.kemmy-it.com/wp-content/uploads/2025/06/04_VS_Serilog_json.png" alt="" class="wp-image-5402" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/06/04_VS_Serilog_json.png 363w, https://www.kemmy-it.com/wp-content/uploads/2025/06/04_VS_Serilog_json-270x300.png 270w" sizes="(max-width: 363px) 100vw, 363px" /></figure>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc12">Visual Studio C#　Serilog 動作確認</span></h2>



<p>Serilogの「コード内」設定と「JSONファイル」設定も、下記の簡単なプログラムコードを実行して検証します。</p>



<ul class="wp-block-list">
<li>設定した条件
<ul class="wp-block-list">
<li>コンソール画面には、Debugレベル以上のエラーを出力する</li>



<li>ログファイルには、Warningレベル以上のエラーを出力する</li>
</ul>
</li>
</ul>



<pre class="wp-block-code"><code>using Serilog;
using Serilog.Events;

//---------------------------------------------------------------------------------
// Serilogの初期設定
//---------------------------------------------------------------------------------
try
{ 
    // LoggerConfiguration インスタンスの作成
    Log.Logger = new LoggerConfiguration()

    // 出力先の設定　コンソール/デバッグウィンドウ/ログファイル
    .WriteTo.Console()
    .WriteTo.Debug()

    //rollingInterval: RollingInterval.Day ログファイルを日ごとに作成
    .WriteTo.File(@"C:\temp\Serilog\serilog_code.txt",
            restrictedToMinimumLevel: LogEventLevel.Warning,
            rollingInterval: RollingInterval.Day)

    //Debug 以上のログレベルのログが記録される
    .MinimumLevel.Debug()
    .CreateLogger();

    Log.Information("Information：コード内の、Serilog設定が適用されました。Fileには表示されない。");
    Log.Verbose("Verbose：ログに表示されないメッセージ。Fileには表示されない。");
    Log.Debug("Debug：プログラムが開始しました。");
    Log.Warning("Warning：警告エラーメッセージ");

    for (int i = 0; i &lt; 10; i++)
    {
        int doubled = i * 2;
        //logger.Info($"NLog ループ {i}：2 倍の値 = {doubled}");
        Log.Debug($"ループ {i}：2倍の値 = {doubled}" + " Fileには表示されない。");
    }

    // 故意に例外を発生させるためのコード
    int val_1 = 10;
    int val_2 = 0;
    int result = val_1 / val_2;
}
catch (Exception ex)
{
    // 例外が発生した場合
    Log.Error(ex, "Error：アプリケーションでエラーが発生しました");
    Log.Fatal(ex, "Fatal：アプリケーションで致命的なエラーが発生しました");
}
finally
{
    // アプリケーション終了時のログ
    Log.Information("プログラムが終了しました");
}</code></pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc13">Visual Studio C# コード内でSerilogを設定した場合</span></h3>



<p>下記の出力結果を見ると、想定通りに動作した事が確認できました。</p>



<p>■コンソール画面への出力結果</p>



<figure class="wp-block-image size-full"><img decoding="async" width="979" height="512" src="https://www.kemmy-it.com/wp-content/uploads/2025/06/05_VS_Serilog_json-1.png" alt="" class="wp-image-5410" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/06/05_VS_Serilog_json-1.png 979w, https://www.kemmy-it.com/wp-content/uploads/2025/06/05_VS_Serilog_json-1-300x157.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/06/05_VS_Serilog_json-1-768x402.png 768w" sizes="(max-width: 979px) 100vw, 979px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<p>■ログファイルへの出力結果</p>



<figure class="wp-block-image size-full"><img decoding="async" width="871" height="285" src="https://www.kemmy-it.com/wp-content/uploads/2025/06/06_VS_Serilog_json-1.png" alt="" class="wp-image-5406" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/06/06_VS_Serilog_json-1.png 871w, https://www.kemmy-it.com/wp-content/uploads/2025/06/06_VS_Serilog_json-1-300x98.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/06/06_VS_Serilog_json-1-768x251.png 768w" sizes="(max-width: 871px) 100vw, 871px" /></figure>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><span id="toc14">Visual Studio C# JsonファイルでSerilogを設定した場合</span></h3>



<p>■コンソール画面への出力結果</p>



<figure class="wp-block-image size-full"><img decoding="async" width="979" height="512" src="https://www.kemmy-it.com/wp-content/uploads/2025/06/07_VS_Serilog_json.png" alt="" class="wp-image-5408" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/06/07_VS_Serilog_json.png 979w, https://www.kemmy-it.com/wp-content/uploads/2025/06/07_VS_Serilog_json-300x157.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/06/07_VS_Serilog_json-768x402.png 768w" sizes="(max-width: 979px) 100vw, 979px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<p>■ログファイルへの出力結果</p>



<figure class="wp-block-image size-full"><img decoding="async" width="875" height="290" src="https://www.kemmy-it.com/wp-content/uploads/2025/06/08_VS_Serilog_json.png" alt="" class="wp-image-5409" srcset="https://www.kemmy-it.com/wp-content/uploads/2025/06/08_VS_Serilog_json.png 875w, https://www.kemmy-it.com/wp-content/uploads/2025/06/08_VS_Serilog_json-300x99.png 300w, https://www.kemmy-it.com/wp-content/uploads/2025/06/08_VS_Serilog_json-768x255.png 768w" sizes="(max-width: 875px) 100vw, 875px" /></figure>



<div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><span id="toc15">Visual Studio C# Serilog まとめ（NLogと比較して）</span></h2>



<p>NLogとSerilogはどちらもC#のログ記録ライブラリとして広く使われていますが、それぞれに<strong>優れた点</strong>と<strong>デメリット</strong>があります。</p>



<p>一般的に、<strong>NLogはレガシーシステムや高パフォーマンスを求めるアプリケーション</strong>で使われることが多く、<strong>Serilogはクラウド環境や構造化ログを活用するプロジェクト</strong>で人気があります。</p>



<p>最近では、<strong>Serilogの採用が増えている</strong>傾向があるようですが、用途によって適したライブラリを選択する事が重要です。</p>



<p></p>



<p></p>



<div style="height:185px" aria-hidden="true" class="wp-block-spacer"></div>



<p></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
