一般社団法人 全国個人事業主支援協会

COLUMN コラム

ポータブル VS Code の構築手順

セキュリティの厳しいネットワークや、OSを汚したくないクリーンなWindows環境(Windows 11 Proなど)で開発を行いたいことはありませんか?

Visual Studio Code(VS Code)は、特定のフォルダ構成とバッチファイルを組み合わせることで、拡張機能や各種プログラミング言語のコンパイラを含めた「完全なポータブル環境」を構築できます。USBメモリに入れて持ち運ぶことも可能です。

この記事では、Python、Node.js、C#、F#、Rust、PowerShell、さらにはデータベース接続やPolyglot Notebooksまで詰め込んだ、オールインワンのVS Codeポータブル環境の作り方を徹底解説します。

📂 Step 1: フォルダ構成の準備

まずは作業用のベースディレクトリ(例: C:\VSCodePortable)を作成し、以下のような空フォルダを用意します。

VSCodePortable\
 ├─ home\      (Git設定やSSH鍵などを保存する仮想ホーム)
 ├─ tools\     (各言語・ツールのバイナリを格納)
 │   ├─ git\
 │   ├─ python\
 │   ├─ nodejs\
 │   ├─ dotnet\
 │   ├─ pwsh\
 │   └─ rust\
 ├─ vscode\    (VS Code本体)
 └─ example\   (テスト用コードを格納)

🛠️ Step 2: VS Code本体と各ツールの配置

各ツールのインストーラー版(.exe)ではなく、ZIP版(バイナリ版)をダウンロードして配置していきます。

  1. VS Code: 公式サイトからWindows版 .zip (x64) をダウンロードし、vscode フォルダに展開。超重要: Code.exe と同じ階層に data という名前の空フォルダを作成します(これで設定や拡張機能がポータブル化されます)。
  2. Git: Git for Windowsの「PortableGit」をダウンロードし、tools\git に展開。
  3. Python 3.x: Windows embeddable package (64-bit)tools\python に展開。python3xx._pth 内の import site のコメントアウトを外し、get-pip.py を使ってpipを有効化しておきます。
  4. Node.js: Windows Binary (.zip)tools\nodejs に展開。
  5. .NET 9 / 10: SDKの「Binaries (x64)」(.zip) をダウンロードし、両方を tools\dotnet に上書き統合。
  6. PowerShell 7.6: .zip 版を tools\pwsh に展開。
  7. Rust: 環境変数を設定した上で rustup-init.exe を実行し、tools\rust 内にインストールします。

🚀 Step 3: 魔法の起動スクリプト start.bat

ホストPCの環境変数を汚さず、ポータブルフォルダ内のツール群にだけパスを通すバッチファイルを作成します。
VSCodePortable 直下に start.bat を作成し、以下のコードを貼り付けます。

@echo off
setlocal

rem カレントディレクトリをベースパスとして取得
set "BASE_DIR=%~dp0"

rem ポータブル環境用の HOME ディレクトリを設定
set "HOME=%BASE_DIR%home"
if not exist "%HOME%" mkdir "%HOME%"

rem 各ツールの環境変数を設定
set "DOTNET_ROOT=%BASE_DIR%tools\dotnet"
set "RUSTUP_HOME=%BASE_DIR%tools\rust\rustup"
set "CARGO_HOME=%BASE_DIR%tools\rust\cargo"

rem パスを通す
set "PATH=%BASE_DIR%tools\git\cmd;%BASE_DIR%tools\python;%BASE_DIR%tools\python\Scripts;%BASE_DIR%tools\nodejs;%DOTNET_ROOT%;%BASE_DIR%tools\pwsh;%CARGO_HOME%\bin;%PATH%"

rem VS Codeを起動
start "" "%BASE_DIR%vscode\Code.exe"

endlocal

以降、VS Codeを起動する際は必ずこの start.bat をダブルクリックします。

🧩 Step 4: 拡張機能とCLIツールの導入

start.bat から起動したVS Codeのターミナル(Ctrl + `)を開き、必要なパッケージをインストールします。

CLIツールのインストール:

# Jupyter環境
python -m pip install jupyter
# OpenAPI仕様書生成用 (redocly)
npm install -g @redocly/cli

VS Code拡張機能のインストール:
拡張機能メニューから以下をインストールします(すべて data フォルダ内に保存されます)。

  • Python (ms-python.python)
  • Jupyter (ms-toolsai.jupyter)
  • Polyglot Notebook (ms-dotnettools.dotnet-interactive-vscode)
  • C# (ms-dotnettools.csharp)
  • Ionide for F# (Ionide.Ionide-fsharp)
  • Rust Analyzer (rust-lang.rust-analyzer)
  • PowerShell (ms-vscode.PowerShell)
  • SQL Server (mssql) & SQLTools (DB接続用)

🧪 Step 5: 動作テスト(example の作成)

環境が正しく構築できたか、各言語でテストしてみましょう。example フォルダ内にファイルを作成して実行します。

Python (hello.py)

import sys
print(f"Hello Portable Python! Version: {sys.version}")

実行: python hello.py

C# / F# / Rust

ターミナルから以下のコマンドでプロジェクトを作成し、ビルド・実行します。

  • C#: dotnet new console && dotnet run
  • F#: dotnet new console -lang "F#" && dotnet run
  • Rust: cargo new hello_rust && cd hello_rust && cargo run

OpenAPI 仕様書出力 (openapi.yaml)

Redoclyを使ってYAMLからHTMLドキュメントを生成します。
実行: redocly build-docs openapi.yaml -o index.html

データベース接続 (Azure SQL / DB2)

C#のプロジェクトを作成し、NuGetパッケージ(Microsoft.Data.SqlClient, Net.IBM.Data.Db2)を追加することで、完全マネージドな状態で各DBへSQLを投げて結果を受け取ることが可能です。

🚨 トラブルシューティング: Polyglot Notebooks が起動しない場合

Polyglot Notebooks (.dibファイル) を開いた際、右下に以下のようなエラーが出て失敗することがあります。

Polyglot Notebooks failed to activate: Cannot read properties of undefined (reading 'workingDirectory')

これは、拡張機能が初期化時に作成しようとするツールマニフェストの上書きに失敗してクラッシュする既知のバグ(Issue #4154)です。以下の手順でソースコードを1箇所修正します。

  1. VS Code を完全に終了する。
  2. vscode\data\extensions\ms-dotnettools.dotnet-interactive-vscode-[バージョン]\out\src\vscode-common\ を開く。
  3. 中にある commands.js をテキストエディタで開く。
  4. ['new', 'tool-manifest'] と記載されている配列を探し、--force 引数を追加して ['new', 'tool-manifest', '--force'] に書き換えて保存する。

これでマニフェストの上書きエラーを強制突破でき、快適に Polyglot Notebooks が動作するようになります!

まとめ

ここまでの手順を踏むことで、ホストPCの環境を一切汚さずに、最先端の開発体験を持ち運べる最強のポータブルVS Codeが完成しました。セキュリティ要件が厳しい現場や、複数台のPCを行き来する環境でぜひ活用してみてください!

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア