自分用の拡張機能を諸事情あってVS2017で作りたかった。
少し手間取ったところの自分用まとめ過不足がありそうな気しかしない。
なにかあったら適宜更新
SDKをインストール
プロジェクトを作成
- プロジェクトテンプレートの検索で「vsix」で検索
- vsixのC#を選択
- 適当に名前を付けて作成
- プロジェクトを右クリック→追加→新しい項目
- VisualC#アイテム→Extensibility→Custom Tool Window
- とりあえず一旦ビルド
- 変なエラーが出る。
エラー "VSCTCompiler" タスクが予期せずに失敗しました。
System.OutOfMemoryException: メモリが不足しています。
場所 System.Drawing.Image.FromFile(String filename, Boolean useEmbeddedColorManagement)
場所 Microsoft.VisualStudio.CommandTable.BitmapItem.Read(TextReadVSCTCStream s, XmlElement itemNode)
場所 Microsoft.VisualStudio.CommandTable.ItemList.Read(TextReadVSCTCStream s, XmlElement listNode)
場所 Microsoft.VisualStudio.CommandTable.CommandTable.ReadCMDSSection(TextReadVSCTCStream s, XmlElement listNode)
場所 Microsoft.VisualStudio.CommandTable.CommandTable.Read(TextReadVSCTCStream s)
場所 Microsoft.VisualStudio.CommandTable.CommandTable.Read(String fileName, ReadOptions ro, IMessageProcessor errorProcessor)
場所 Microsoft.VisualStudio.CommandTable.CommandTable.Read(String fileName, IMessageProcessor errorProcessor)
場所 Microsoft.VisualStudio.CommandTable.Compiler.Compile()
場所 Microsoft.VisualStudio.CommandTable.VSCTCompiler.Execute() VSIXProject1
<プロジェクト>\Resources\ToolWindow1Command.png
を適当なpngファイルに置き換えればOK
https://tech.surviveplus.net/archives/1190
ツールバーに表示
書いてあるとおりにやれば大丈夫だった。
とりあえずツールバーに追加するだけなら↓までやればOK
https://learn.microsoft.com/ja-jp/previous-versions/visualstudio/visual-studio-2017/extensibility/adding-a-tool-window?view=vs-2017#add-a-toolbar-to-the-tool-window
作った拡張機能のインストール
\bin\Release
にあるvsixファイルをダブルクリック
拡張機能の更新
-
source.extension.vsixmanifest
をダブルクリックして開く - Versionを更新
- VS2017を閉じる
-
\bin\Release
にあるvsixファイルをダブルクリック
メモ
- XAMALでStackPanelに
VerticalAlignment="Stretch"
を追加しているのにサイズが固定のまま!なぜ!
→デフォルトで置いてあるUserControl
の方にVerticalAlignment="Stretch"
を付けないといけなかった
これ必要なんだろうか…?後で確認する - Styleにデフォルト値的なものを設定したい
→XAMAL内内でStyleタグのx:Key=を外してTargetTypeだけ残せばOK