Чтобы добавить к ответу Ганса, я обнаружил, что использование всех файлов .bmp в My.Resources для проекта работает лучше всего, и просто используйте небольшую функцию для преобразования растрового изображения в значок, который можно использовать, например, какзначок в WinForm:
Public Shared Function ConvertBitmapToIcon(ByVal resourceBitmap As Bitmap) As Icon
Return Icon.FromHandle(resourceBitmap.GetHicon())
End Function
Единственный раз, когда мне нужен настоящий .ico-файл, - это значок скомпилированного .exe.