2

私は非常に単純な Visual Studio アドインを作成しました。これは、JP Booodhoo によるこの記事と同じです。

http://codebetter.com/jpboodhoo/2007/09/04/macro-to-aid-bdd-test-naming-style/

アドインはデバッグで機能するため、アドイン ソリューションで F5 キーを押してソリューションを開くと、アドインがツールに表示されます。ただし、デバッグ時以外は表示されません。つまり、アドインを展開した後、ソリューションを閉じて再度開きました。

何か不足していますか?

展開に関しては、この記事の展開手順に従い、C:\Users[ユーザー名]\Documents\Visual Studio 2012\Addins に展開しました。

Visual Studio 2012 のマクロの代替

public void Exec(string commandName, vsCommandExecOption executeOption, ref object varIn, ref object varOut, ref bool handled)
        {
            handled = false;
            if(executeOption == vsCommandExecOption.vsCommandExecOptionDoDefault)
            {
                if(commandName == "KinghamExtensions.Connect.KinghamExtensions")
                {


                    var selection = (TextSelection)(_applicationObject.ActiveDocument.Selection);
                    selection.SelectLine();
                    if (selection.Text == "") return;

                    var prefix = "public void ";
                    var index = selection.Text.IndexOf(prefix);
                    prefix = selection.Text.Substring(0, index) + prefix;
                    var description = selection.Text.Replace(prefix, String.Empty);

                    selection.Text = prefix + description.Replace(" ", "_").Replace("'", "_");
                    selection.LineDown();
                    selection.EndOfLine();
                    handled = true;
                }
            }
        }

私が言うように、アドインをデバッグで vs から実行するとコードは機能しますが、ツール メニューには表示されません。

また、Git Extensions アドインのようにキーボード オプションに表示されないため、キー バインドを割り当てることができません。

何かご意見は?

4

1 に答える 1

0

いただいた情報だけではお答えしにくいのですが、まずは以下をご確認ください。

アドインがTools>に表示されます。Add-in Managger...

その前に最初のチェックボックスを設定すると、ロードする必要があります。

そうでなく、エラー メッセージが表示された場合は、[いいえ] をクリックしてください。そうしないと、デプロイされた .AddIn ファイルの名前が Studio によって変更されます。リリース アセンブリが次のように Assembly 要素によって参照される場所にあるかどうかを確認する必要があります: Visual Studio によって、質問で言及した AddIn フォルダーにデプロイされ<Assembly>C:\Users[your user name]\Documents\Visual Studio 2012\Projects\MyAddin1\MyAddin1\bin\MyAddin1.dll</Assembly>
たファイル内。.AddIn

そうで、エラーが続く場合は、アドインにいくつかのログを追加し (Windows MessageBox が行います)、それを OnConnection メソッドに配置する必要があります。エラーはOnConnection、IDE がロードしようとしているときに例外をスローするかFullClassName、AddIn ファイル内の要素が Connection クラスとは異なる名前を参照している可能性があります。

エラーが発生せず、OnConnection が適切に実行される場合は、コードがコマンドを追加している間にスローされた例外である可能性があります (try/catch ブロックで生成されたアドイン テンプレートと同じ方法を実行した場合)。そして、あなたはそれを解決する必要があります。

于 2013-12-23T21:03:02.963 に答える