「.NETプラグイン開発 デバッグ編」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
Ks (トーク | 投稿記録)
編集の要約なし
Ks (トーク | 投稿記録)
文調の修正
3行目: 3行目:


= ビルドからコピーまでを自動化 =
= ビルドからコピーまでを自動化 =
ビルドした結果が Plugins にまとまっているが、これを Mery にコピーするのは面倒である。<br>
ビルドした結果が Plugins にまとまっていますが、これを Mery にコピーするのは面倒です。<br>
当然作っていく中では、修正 -> ビルド -> 確認のサイクルが頻発するための、このコピーを自動化する<br>
当然作っていく中では、修正 -> ビルド -> 確認のサイクルが頻発するため、このコピーを自動化します。<br>
<br>
<br>
ソリューションエクスプローラーでプロジェクトを右クリックし、プロパティを開く。<br>
ソリューションエクスプローラーでプロジェクトを右クリックし、プロパティを開きます。<br>
左の一覧から「ビルド イベント」を選択する。<br>
左の一覧から「ビルド イベント」を選択します。<br>
すると「ビルド後イベントのコマンド ライン」には既に 4 行のコマンドが書かれているはずである。<br>
すると「ビルド後イベントのコマンド ライン」には既に 4 行のコマンドが書かれているはずです。<br>


<source lang="winbatch">
<source lang="winbatch">
17行目: 17行目:
</source>
</source>


これは、ビルド結果を Plugins としてまとめる処理で有り、実は Plugins フォルダにまとめるのは自前でやっている。<br>
これは、ビルド結果を Plugins としてまとめる処理で、実は Plugins フォルダにまとめるのは自前でやっています。<br>
同じように、この結果を Mery にコピーしてやれば良い<br>
同じように、この結果を Mery にコピーしてあげれば OK です。<br>
4 行はそのまま、最後に以下の行を追加する。<br>
4 行はそのまま、最後に以下の行を追加します。<br>


<source lang="winbatch">
<source lang="winbatch">
25行目: 25行目:
</source>
</source>


(Mery フォルダのフルパス) には、開発用に用意した Mery フォルダのフルパスを入れる<br>
(Mery フォルダのフルパス) には、開発用に用意した Mery フォルダのフルパスを入れます。<br>
(例:C:\Users\tarou\Desktop\Mery\Plugins)<br>
(例:C:\Users\tarou\Desktop\Mery\Plugins)<br>
<br>
<br>
これで、ビルドしたときに勝手にコピーされるようになる。<br>
これで、ビルドしたときに勝手にコピーされるようになりました。<br>
<br>
<br>
注意点として、プラグインは Mery がロードしているため、コピー前に必ず Mery を終了させておく必要がある。<br>
注意点として、プラグインは Mery がロードしているため、コピー前に必ず Mery を終了させておく必要があります。<br>
起動したままだとコピーに失敗する。<br>
起動したままだとコピーに失敗します。<br>


= デバッグ =
= デバッグ =
コピーの手間をなくしたところで、本題のデバッグである。<br>
コピーの手間をなくしたところで、本題のデバッグです。<br>
プロジェクトのプロパティで、左の一覧で「デバッグ」を選択する。<br>
プロジェクトのプロパティで、左の一覧で「デバッグ」を選択します。<br>
その中で「開始動作」で「外部プログラムの開始」を選び、右の「...」ボタンから Mery.exe を選択する。<br>
その中で「開始動作」で「外部プログラムの開始」を選び、右の「...」ボタンから Mery.exe を選択します。<br>
後はメニューの [デバッグ] - [デバッグの開始] でも、ツールバーの右三角ボタンでも実行すれば、Mery が実行される。<br>
後はメニューの [デバッグ] - [デバッグの開始] でも、ツールバーの右三角ボタンでも実行すれば、Mery が実行されます。<br>
<br>
<br>
処理ソースの適当なところで行番号左の列をクリックし、赤丸がつくのを確認する。<br>
処理ソースの適当なところで行番号左の列をクリックし、赤丸がつくのを確認します。<br>
この状態でプラグインを実行し、該当の行を通るときにデバッガが動き動作が止まる。<br>
この状態でプラグインを実行すると、該当の行を通るときにデバッガが動き動作が止まります。<br>
<br>
<br>
後は変数名にカーソルを当てて中身を見たり、F10 で 1 行ずつ動かして確認すると良い。<br>
後は変数名にカーソルを当てて中身を見たり、F10 で 1 行ずつ動かして確認すると良いですね。<br>
<br>
<br>
注意点として、プラグインは Mery の処理の一部として動いているため、プラグインを止めると Mery も止まる。<br>
注意点として、プラグインは Mery の処理の一部として動いているため、プラグインを止めると Mery も止まります。<br>
よって、実行した結果を Mery で逐一確認する、というのは難しい。<br>
よって、実行した結果を Mery で逐一確認する、というのは難しいのです……<br>

2016年6月3日 (金) 21:10時点における版

概要

ビルドからデバッグまでの手順とサイクルの改善の説明。

ビルドからコピーまでを自動化

ビルドした結果が 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 で逐一確認する、というのは難しいのです……

スポンサーリンク