tafuji's blog

C#, Xamarin, Azure DevOps を中心に書いています。

Visual Studio 拡張機能を新規作成後、System.OutOfMemoryException が発生し、ビルドエラーが出るときの対処法

Qiita より転載

はじめに

Visual Studio拡張機能を新規作成し、ビルドを行うと、System.OutOfMemoryException というエラーメッセージが表示され、ビルドが失敗する場合があります。 例えば、以下の手順のように何もコードを記述していない状態でも、このエラーは発生することがあります。

  1. Visual Studio で VSIX プロジェクトを新規作成
  2. プロジェクトに 「Tool Window」を新規追加
  3. プロジェクトをビルドする
  4. ビルドエラー発生

Build Error

原因

テンプレートから作成されたイメージファイルが壊れていることが原因と思われます。

SolutionExplorer

ファイルを開くと、「サポートされていない形式のようです」というエラーで開けない。

BrokenFile

対処方法

壊れているイメージファイルを正常なイメージファイルに置き換えると、このエラーは解消されます。正常なイメージファイルであれば、どんなファイルでもよいのですが、ここでは、インストールされたテンプレートのファイルを利用する方法を記載します。

  • Tool Window のテンプレートの場所を開く
    • 例の場合
      • C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\q2vm3w32.pmy\ItemTemplates\CSharp\Extensibility\VSPackage\1033\CSharpCustomToolwindow
  • Resources フォルダ直下にある png ファイルを、プロジェクトの png ファイルと差し替えてください

    Resources

  • プロジェクトをリビルドする

Visual Studio 2017 にインストールされたテンプレートの場所を調べる方法は、「参考」の参照先の記事に記載しています。(ログファイルを toolwindow で検索すると見つかります)

参考

Visual Studio にインストールされたテンプレートの場所を調べる方法は、以下に手順を記載しています。 - !Visual Studio 2017 のプロジェクト・項目テンプレートがインストールされている場所を調べる方法