2009-06-16 11 views
0

私はVisual Studio(2008)アドインを使いこなしています。私はすべてのWebアプリケーションのコンテキストメニューにボタンを追加できるようにしたい(Web配置ツールの共有アーカイブに基づいてWebサイトのIISをセットアップする)。私はプロジェクトのコンテキストメニューにコンテキスト項目を追加することができるという限り持ってVSアドイン:Webアプリケーションにコンテキストボタンを追加

public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) 

{ れるApplicationObject =(DTE2)アプリケーション。 addInInstance =(AddIn)addInInst;

if (connectMode == ext_ConnectMode.ext_cm_UISetup) { 
    var contextGuids = new Object[] {}; 
    var iisSetupCommand = applicationObject.Commands.AddNamedCommand(
     addInInstance, 
     CommandNameSetupIis, 
     "Setup IIS", 
     "Create the bindings in IIS for the website. Requires an IIS folder in the project root with the archive xml files for the website.", 
     true, 
     52, 
     ref contextGuids, 
     (int) vsCommandStatus.vsCommandStatusSupported + (int) vsCommandStatus.vsCommandStatusEnabled 
     ); 

    var commandBars = (CommandBars) applicationObject.CommandBars; 
    var projectMenu = commandBars["Project"]; 
    iisSetupCommand.AddControl(projectMenu, projectMenu.Controls.Count + 1); 
} 

}

これは動作しますが、私は悩み、さらに取得を抱えています。

問題1クリックするとボタンが消えます。

問題2私はどのようにWebアプリケーションプロジェクトのボタンを表示するのか分かりません。

問題3私はIISバインディングを作成し、これらの設定でWeb配置ツールを実行するために、iisアーカイブ、現在のプロジェクトディレクトリパス、およびプロジェクト名を取得するコードを記述する必要があります。

このアドインの項目は非常に鈍いです。私はできるだけ多くのgoogledと(ひどい)msdnのドキュメントのほとんどをお読みください。私が見つけた最高の情報は:http://dotnetslackers.com/articles/vs_addin/Lessons_learned_from_Copy_to_Html_Add_in.aspx

誰でも助けることができますか?

答えて

0

問題1:QueryStatusをオーバーライドし、ステータスをvsCommandStatus.vsCommandStatusSupportedに設定します。 vsCommandStatus.vsCommandStatusEnabled

問題2:これは可能ではないと思います。プロジェクトタイプを取得することは可能ですが、ボタンがクリックされた後でのみ可能です(QueryStatusはボタンが一度クリックされると起動するようです)。

問題3:プロジェクトパスは、connect.ApplicationObject.ActiveSolutionProjects経由で利用できました。

関連する問題