「.NETプラグイン開発 デバッグ編」の版間の差分
<source>タグを<syntaxhighlight>タグに置き換え |
改行の修正 |
||
| 3行目: | 3行目: | ||
== ビルドからコピーまでを自動化 == | == ビルドからコピーまでを自動化 == | ||
ビルドした結果が Plugins にまとまっていますが、これを Mery | ビルドした結果が Plugins にまとまっていますが、これを Mery にコピーするのは面倒です。当然作っていく中では、修正 -> ビルド -> 確認のサイクルが頻発するため、このコピーを自動化します。 | ||
ソリューションエクスプローラーでプロジェクトを右クリックし、プロパティを開きます。左の一覧から「ビルド イベント」を選択します。すると「ビルド後イベントのコマンド ライン」には既に 4 行のコマンドが書かれているはずです。 | |||
<syntaxhighlight lang="winbatch"> | <syntaxhighlight lang="winbatch"> | ||
| 17行目: | 14行目: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
これは、ビルド結果を Plugins としてまとめる処理で、実は Plugins | これは、ビルド結果を Plugins としてまとめる処理で、実は Plugins フォルダにまとめるのは自前でやっています。同じように、この結果を Mery にコピーしてあげれば OK です。4 行はそのまま、最後に以下の行を追加します。 | ||
<syntaxhighlight lang="winbatch"> | <syntaxhighlight lang="winbatch"> | ||
| 25行目: | 20行目: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
(Mery フォルダのフルパス) には、開発用に用意した Mery | (Mery フォルダのフルパス) には、開発用に用意した Mery フォルダのフルパスを入れます(例:C:\Users\tarou\Desktop\Mery\Plugins)。 | ||
これで、ビルドしたときに勝手にコピーされるようになりました。 | |||
これで、ビルドしたときに勝手にコピーされるようになりました。 | |||
注意点として、プラグインは Mery がロードしているため、コピー前に必ず Mery を終了させておく必要があります。起動したままだとコピーに失敗します。 | |||
注意点として、プラグインは Mery がロードしているため、コピー前に必ず Mery | |||
== デバッグ == | == デバッグ == | ||
コピーの手間をなくしたところで、本題のデバッグです。プロジェクトのプロパティで、左の一覧で「デバッグ」を選択します。その中で「開始動作」で「外部プログラムの開始」を選び、右の「...」ボタンから Mery.exe を選択します。後はメニューの [デバッグ] - [デバッグの開始] でも、ツールバーの右三角ボタンでも実行すれば、Mery が実行されます。 | |||
処理ソースの適当なところで行番号左の列をクリックし、赤丸がつくのを確認します。この状態でプラグインを実行すると、該当の行を通るときにデバッガが動き動作が止まります。 | |||
後は変数名にカーソルを当てて中身を見たり、F10 で 1 行ずつ動かして確認すると良いですね。 | |||
注意点として、プラグインは Mery の処理の一部として動いているため、プラグインを止めると Mery も止まります。よって、実行した結果を Mery で逐一確認する、というのは難しいのです…… | |||
後は変数名にカーソルを当てて中身を見たり、F10 で 1 行ずつ動かして確認すると良いですね。 | |||
注意点として、プラグインは Mery の処理の一部として動いているため、プラグインを止めると Mery | |||
2023年5月20日 (土) 02:20時点における版
概要
ビルドからデバッグまでの手順とサイクルの改善の説明。
ビルドからコピーまでを自動化
ビルドした結果が Plugins にまとまっていますが、これを Mery にコピーするのは面倒です。当然作っていく中では、修正 -> ビルド -> 確認のサイクルが頻発するため、このコピーを自動化します。
ソリューションエクスプローラーでプロジェクトを右クリックし、プロパティを開きます。左の一覧から「ビルド イベント」を選択します。すると「ビルド後イベントのコマンド ライン」には既に 4 行のコマンドが書かれているはずです。
IF NOT EXIST "$(ProjectDir)Plugins" MKDIR "$(ProjectDir)Plugins"
IF NOT EXIST "$(ProjectDir)Plugins\$(TargetName).dll" COPY /Y "$(ProjectDir)Library\DotNetWrapper.dll" "$(ProjectDir)Plugins\$(TargetName).dll"
IF NOT EXIST "$(ProjectDir)Plugins\$(TargetName)" MKDIR "$(ProjectDir)Plugins\$(TargetName)"
COPY /Y "$(TargetDir)*.dll" "$(ProjectDir)Plugins\$(TargetName)\"
これは、ビルド結果を Plugins としてまとめる処理で、実は Plugins フォルダにまとめるのは自前でやっています。同じように、この結果を Mery にコピーしてあげれば OK です。4 行はそのまま、最後に以下の行を追加します。
XCOPY "$(ProjectDir)Plugins" "(Mery フォルダのフルパス)\Plugins" /Y /S /I
(Mery フォルダのフルパス) には、開発用に用意した Mery フォルダのフルパスを入れます(例:C:\Users\tarou\Desktop\Mery\Plugins)。
これで、ビルドしたときに勝手にコピーされるようになりました。
注意点として、プラグインは Mery がロードしているため、コピー前に必ず Mery を終了させておく必要があります。起動したままだとコピーに失敗します。
デバッグ
コピーの手間をなくしたところで、本題のデバッグです。プロジェクトのプロパティで、左の一覧で「デバッグ」を選択します。その中で「開始動作」で「外部プログラムの開始」を選び、右の「...」ボタンから Mery.exe を選択します。後はメニューの [デバッグ] - [デバッグの開始] でも、ツールバーの右三角ボタンでも実行すれば、Mery が実行されます。
処理ソースの適当なところで行番号左の列をクリックし、赤丸がつくのを確認します。この状態でプラグインを実行すると、該当の行を通るときにデバッガが動き動作が止まります。
後は変数名にカーソルを当てて中身を見たり、F10 で 1 行ずつ動かして確認すると良いですね。
注意点として、プラグインは Mery の処理の一部として動いているため、プラグインを止めると Mery も止まります。よって、実行した結果を Mery で逐一確認する、というのは難しいのです……