LoginSignup
1
1

More than 5 years have passed since last update.

vsto excelアドインの開発においてデバッグ機能が使えなくなる。

Posted at

少し前にvsto excelアドイン開発で躓いたことがあったのでそれを解決した流れについてメモです。
Qiita初登校です。初歩的なハマり方をしているので、記事にするの少し恥ずかしいですが載せてみました。

概要

  1. vsto excelアドインの作成を行う
  2. 発行ウィザードをからアドインのインストーラを作成し、そのイン ストールを行う
  3. アドインの機能追加を行う(ここでデバッグ不能になりました)

大まかな環境

Visual Studio 2017 Community
Excel 2013 と 2016 VSTO アドイン開発
Windows 10 Home

流れ

vsto excelアドインの作成を行う

わかりやすく確認するために、VSTO ビジュアルなデザイナーのリボンを追加しそこに適当にイベントを追加してみます。

リボンにボタンを追加し、そのイベントにMessageBoxを表示する簡単なイベントを足してみました。
リボン01.png

// using System.Windows.Forms;

private void button1_Click(object sender, RibbonControlEventArgs e)
{
    var dialogResult = MessageBox.Show(@"Hello", @"Title", MessageBoxButtons.OKCancel);

    if(dialogResult == DialogResult.OK)
    {
        System.Diagnostics.Trace.WriteLine("Ok");
    }
}

button1_Clickイベントの中にブレークポイントを設定して、デバッグの実行を行います。
対応しているexcelがPCにインストールされているならexcelが立ち上がると思うので、適当なbookを開いてアドインタブからボタンに紐づけたイベントを呼び出します。
アドインタブ01.png

MessageBoxの表示が行われ、ブレークも作動します。

発行ウィザードをからアドインのインストーラを作成し、そのインストールを行う

ソリューションエクスプローラー上でアドイン開発に使用したプロジェクトを選択し、右クリックして発行ウィザードを起動します

発行01.png

出力フォルダ階層を適当に設定し、CD,DVD形式で出力します。
発行02.png
次へをクリックします。
発行03.png
完了をクリックします。



出力フォルダにできるSetup.exeからアドインをインストールします。
発行04.png
記述していませんでしたが、AddinTestが今回作成に使用したプロジェクトの名前です。

アドインの機能追加を行う

初めに作ったリボンに新しいボタンを追加し、新しいイベントを足してみます。
リボン02.png

private void button2_Click(object sender, RibbonControlEventArgs e)
{
    var dialogResult = MessageBox.Show(@"World", @"Title", MessageBoxButtons.OKCancel);

    if (dialogResult == DialogResult.OK)
    {
        System.Diagnostics.Trace.WriteLine("Ok");
    }
}

ここでデバッグ実行を行うと以下のようなエラーダイヤログが発生し、デバッグができなくなります。
ここに表示されている内容を勘違いしたのが今回の原因。
アドインタブの中に実装したボタンが表示されなくなり、当然ブレークポイントも機能しなくなります。
機能追加01.png

別バージョンのアドインが読み込まれているのでそのアドインをアンインストールをする必要があるとのこと。アンインストールしてきました。

その後再度アドイン開発を行っていたプロジェクトをデバッグ実行しました。
先ほどのエラーは発生しなくなったものの、依然としてアドインが読み込まれていません。

ここでエラーウィンドウを再度確認
機能追加03.png

画像下部のパスの欄にある拡張子.vsto形式のファイルをダブルクリックするとアドインのインストールが開始されました。
この状態でデバッグ実行を行うとアドインが存在する状態で実行を行うことができ、ブレークポイントを使用することもできました。
これでひとまず解決です。

まとめ

エラーメッセージはちゃんと読みましょう。
ここを軽く読み飛ばしてしまったばかりに、半日ほどハマってしまいました。

とはいえ、初めてプロジェクトを実行したときはデバッグ実行と同時にアドインが自動で読み込まれていたので、機能を追加したときも同じく自動で読み込まれると思うじゃん。なんて言い訳をしたくもなったものです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1