[VSIX]The "VSCTCompiler" task failed unexpectedly. System.OutOfMemoryException

環境: VisualStudio 2015 Update 3

新增一個 VSIX 的專案,再新增一個 Custom Tool Window 項目後,

重新建置專案,居然出現 The "VSCTCompiler" task failed unexpectedly. 的錯誤,如下,

 

Error        The "VSCTCompiler" task failed unexpectedly.
System.OutOfMemoryException: Out of memory.
   at System.Drawing.Image.FromFile(String filename, Boolean useEmbeddedColorManagement)
   at Microsoft.VisualStudio.CommandTable.BitmapItem.Read(TextReadVSCTCStream s, XmlElement itemNode)
   at Microsoft.VisualStudio.CommandTable.ItemList.Read(TextReadVSCTCStream s, XmlElement listNode)
   at Microsoft.VisualStudio.CommandTable.CommandTable.ReadCMDSSection(TextReadVSCTCStream s, XmlElement listNode)
   at Microsoft.VisualStudio.CommandTable.CommandTable.Read(TextReadVSCTCStream s)
   at Microsoft.VisualStudio.CommandTable.CommandTable.Read(String fileName, ReadOptions ro, IMessageProcessor errorProcessor)
   at Microsoft.VisualStudio.CommandTable.CommandTable.Read(String fileName, IMessageProcessor errorProcessor)
   at Microsoft.VisualStudio.CommandTable.Compiler.Compile()
   at Microsoft.VisualStudio.CommandTable.VSCTCompiler.Execute()

什麼都沒有做,居然會「Out of memory」,似乎不太可能。

在錯誤中感覺是要讀取 圖檔 "BitmapItem.Read(TextReadVSCTCStream s, XmlElement itemNode)" 所發生的錯誤。

所以開啟 Resources 中的 ToolWindow1Command.png ,居然不能開,如下,

看 vsct 檔中 Bitmap 的設定,他的 png 跟預設的 Custom Command 是一樣的,如下,

<Bitmaps>
  <Bitmap guid="guidImages" href="Resources\ToolWindow1Command.png" usedList="bmpPic1, bmpPic2, bmpPicSearch, bmpPicX, bmpPicArrows, bmpPicStrikethrough" />
</Bitmaps> 

所以,筆者就新增一個 Custom Command 項目,然後將 ToolWindow1Command.png 刪掉,複製 Command1.png 為 ToolWindow1Command.png 。

然後重新建置就沒有這個問題了。

So... Custom Tool Window 項目 中的 ToolWindow1Command.png 壞了,換一個好的圖檔就可以了哦。

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^