1.外部ファイルの変更が反映されない
PowerShellでWindowsフォームを作ることが多くなってきたので下記のような感じで、クラスごとにファイルを分けたり、共通関数をファイルにまとめたりしていたが、VSCodeでデバッグをしているときに外部ファイルで編集した内容が反映されないことがあって困っていた。Windows PowerShell ISEでも同じ発生し、毎回面倒だなと思いながら、エディタの再起動で頑張っていた。
いろいろとネットを見ているとVSCodeに入れているPowerShellのデバッグ用の拡張機能の設定を変えることで、対応できることが分かったため備忘録として記載しておく。VSCodeは「PowerShell Integrated Console」でスクリプトが実行されているらしく、拡張機能の設定の初期値が使いまわす設定になっている。
これのおかげで、一度スクリプトを実行し、変数をインスタンス化して設定しておくことでほかのスクリプトで実行しても変数やAdd-Typeが適用されるというメリット?もあったデバッグの方法を変えるだけで対応できるので、下記のように変更を行うことにする
2.複数ファイルに分割したときのデバッグ
Visual StudioでWindowsフォームを作るようにPowerShellでWindowsフォームのプロジェクトを作りたいと思っていろいろと頑張っていた。その際にVSCodeでデバッグするときの設定で初期設定では開いているファイルをデバッグするようになっており、複数画面を構成するときに1クラス1ファイルの構成で画面を作っていると毎回選択するファイルを変更することがめんどくさい・・・。
【プロジェクトの構成】
・外部ファイルをインクルードする処理を記載した「Main.ps1」を最初に読み込み、「Main.ps1」の中で共通で使うクラスなどをインスタンス化し、「Script:clsCom」などのように呼び出す。
◆ Main.ps1
・各ファイルでは「$frm = New-Object "clsfrm*****"」のように指定して呼び出すことで、フォームのインスタンス化を行う
・デバッグするときにMain.ps1を選択してからデバッグを開始する必要がある
解決策としていろいろとみていたが、VSCodeにある「デバッグの構成」でどのファイルからデバッグを行うのかを設定することがわかったので、設定を追加した。
0 件のコメント:
コメントを投稿