🐈
🪟【WSL×Claude Code】Linux上からWindowsネイティブアプリをビルドする!
.exe
が作れるってホント?
はじめに:Linuxから最近人気のClaude Codeで開発してます。
開発は主にネイティブなWindowsアプリケーションをVisual Studio
で開発しています。
Claude Code
がWSL上にあるため、現状ではWindows側から直接使えず、WSLから操作する形になります。
WSLだとMSBuildが直接呼び出せず、
-
Claude Code
でコード作成 -
Visual Studio
ビルド - エラーを再度
Claude Code
へ食わせる。 - 1へ戻る
みたいな使い方で大変不便でした。
色々試行錯誤してみたところ、PowerShellを経由すれば、WSLからでもネイティブWindowsアプリがビルドできるようになりました。 🚀
.exe
やテストを自動ビルド・実行!
🌟 ゴール:WSLからPowerShellを叩いて🧩 構成のイメージ:
項目 | 内容 |
---|---|
開発環境 | WSL + Claude Code(Linux側) |
ビルド環境 | Visual Studio(MSBuild)(Windows側) |
テスト実行 | VSTest(Windows側) |
コード例 | 某作のプロジェクト「my_native_app」 |
🔨 PowerShell経由でプロジェクトをビルドしよう
.vcxproj
(単体プロジェクト)のビルド例:
✅ powershell.exe -Command "& 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Current\\Bin\\MSBuild.exe' C:/dev/my_native_app/src/my_native_app.vcxproj"
.sln
(ソリューション全体)のビルド例:
✅ powershell.exe -Command "& 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Current\\Bin\\MSBuild.exe' C:/dev/my_native_app/my_native_app.sln"
🔍 ポイント:
- パスにスペースが含まれる場合はシングルクォートで囲んでOK
- Visual Studio のバージョンやEditionにも注意
🧪 VSTestでユニットテストを走らせよう!
powershell.exe -Command "& 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\TestWindow\\vstest.console.exe' C:/dev/my_native_app/build/x64/Debug/my_native_app_tests.dll /platform:x64 /inIsolation /Logger:trx"
🧐 powershell.exe
経由でvstest.console.exe
を使って、テストを行い、trx
ファイルをClaude Code
にチェックさせることで継続的な開発が可能となります。
CLAUDE.md への記載
こんな感じで記載しています。
### WSL環境からのビルドコマンド
WSL環境からWindows上のVisual Studio MSBuildを使用する場合:
```bash
# プロジェクト単体ビルド
powershell.exe -Command "& 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Current\\Bin\\MSBuild.exe' C:/dev/my_native_app/src/my_native_app.vcxproj"
# ソリューション全体ビルド
powershell.exe -Command "& 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Current\\Bin\\MSBuild.exe' C:/dev/my_native_app/my_native_app.sln"
```
### WSL環境からのテスト実行
WSL環境からWindows上のVSTestを使用する場合:
```bash
powershell.exe -Command "& 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\TestWindow\\vstest.console.exe' C:/dev/my_native_app/build/x64/Debug/my_native_app_tests.dll /platform:x64 /inIsolation /Logger:trx"
```
# テスト結果確認
# TestResults/xxx.trx (最新のファイルを確認)
🧭 まとめ:Claude Codeで書いて、PowerShellで走らせよう!
- WSL経由で
Claude Code
を実行しつつ、PowerShell経由でWin32アプリをビルドできる -
.vcxproj
や.sln
を直接MSBuildに渡せばOK - テストもVSTestでバッチリ!
おまけ
Claude Code
からC/C++ソースコードを修正させるとUTF-8
で保存されてしまうので、CLAUDE.md
に以下を追加してSJIS
保存させています。
## 文字コード変換(絶対厳守)
**重要**: C/C++ソースコード修正後は、必ず以下のコマンドを実行してShift_JISに変換すること:
```bash
nkf -s -Lw --overwrite <変換したいファイル名>
```
- `.cpp`, `.c`, `.h`, `.hpp` ファイルはすべてShift_JIS(CP932)で保存
- UTF-8からShift_JISへの変換は必須実行項目
- この処理を忘れた場合はペナルティの対象となる
Discussion