概要: VSCodeでのlaunch.jsonで自作(?)の環境変数を使いたい
VSCode上でC#(.NET5)を試しています。(VSCodeの使い方も学ぶ意図もあり)
launch.jsonやtasks.jsonを(VSCode側が)生成し、この中に『変数』を追加できないでしょうか?
やりたいことは、launch.json内の"program"の'${workspaceFolder}/bin/Debug/(target-framework)/(project-name.dll)'の
target-framework等の部分を書き換えるために、変数(厳密には環境変数でしょうけど)として
TARGETFRAMEWORK等のように定義しておいて、
"program": "${workspaceFolder}/bin/Debug/${TARGETFRAMEWORK}/main.dll"
のように変数を組み込みたいのです。これができれば、バージョンが上がってもできますし。
『VSCode C# launch.json 変数 定義』等で調べても、VS Codeの設定をキレイに変数置換【VS Code使い方①】のように『すでに用意されている環境変数』とかしかありません。
さらに潜っても、本家と後どこだったか忘れましたが、
"configurations": [ { "env": { "TARGETFRAMEWORK1": "net5.0" }, ... (ここで ${env:TARGETFRAMEWORK1" のようにしてアクセス) } }
のようなものしかありませんでした。
ですが、
{ // IntelliSense を使用して利用可能な属性を学べます。 // 既存の属性の説明をホバーして表示します。 // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": ".NET Core Launch (console)", "type": "coreclr", "request": "launch", "WARNING01": "*********************************************************************************", "WARNING02": "The C# extension was unable to automatically decode projects in the current", "WARNING03": "workspace to create a runnable launch.json file. A template launch.json file has", "WARNING04": "been created as a placeholder.", "WARNING05": "", "WARNING06": "If OmniSharp is currently unable to load your project, you can attempt to resolve", "WARNING07": "this by restoring any missing project dependencies (example: run 'dotnet restore')", "WARNING08": "and by fixing any reported errors from building the projects in your workspace.", "WARNING09": "If this allows OmniSharp to now load your project then --", "WARNING10": " * Delete this file", "WARNING11": " * Open the Visual Studio Code command palette (View->Command Palette)", "WARNING12": " * run the command: '.NET: Generate Assets for Build and Debug'.", "WARNING13": "", "WARNING14": "If your project requires a more complex launch configuration, you may wish to delete", "WARNING15": "this configuration and pick a different template using the 'Add Configuration...'", "WARNING16": "button at the bottom of this file.", "WARNING17": "*********************************************************************************", "env": { "TARGETFRAMEWORK1": "net5.0" }, "preLaunchTask": "build", "program": "${workspaceFolder}/bin/Debug/${env:TARGETFRAMEWORK1}/ConsoleType.dll", "args": [], "cwd": "${workspaceFolder}", "console": "internalConsole", "stopAtEntry": false }, { "name": ".NET Core Attach", "type": "coreclr", "request": "attach" } ] }
のようにやってみましたが、なぜか${env:TARGETFRAMEWORK1}の値が、空の状態になっているようです。
[エラーメッセージ] launch: プログラム'(省略)\bin\Debug\ConsoleType.dll'が存在していません
メッセージの意味は理解していますが、では、どのようにすれば上記でいう TARGETFRAMEWORK1 に相当する環境変数を使うことができるでしょうか。
もしこれができるのなら、やりようによってはできる範囲が広がるので。
Windows(およびおそらくLinux)の環境変数に問題があるようです。 OS Xで動作します。調査中です。すぐに修正される予定です。
(アンドレ・ヴァイナンドさんの回答)
とありますが、その回答は2015年のものなのでさすがに改善されているかと思うのですが。
[情報]
OS: Windows10
VSCode: VSCode 1.60.2 (Portableモード)
回答2件
あなたの回答
tips
プレビュー