Monogame говорит, что у меня нет файла XNB, хотя он есть. ⇐ C#

Место общения программистов C#
Anonymous
Monogame говорит, что у меня нет файла XNB, хотя он есть.

Сообщение Anonymous »

У меня есть функция загрузки списка изображений из папки с помощью функции MonoGame Content.Load (). код функции следующий:

Код: Выделить всё

void loadImageList(ref Texture2D[] spriteList, string folder)
{
for (int i = 0; i < spriteList.Length; i++)
{
string fileName = folder + "/" + (i+1).ToString();
spriteList[i] = Content.Load(fileName);
}
}
Я называю это так:

Код: Выделить всё

Texture2D[] winOutline = new Texture2D[12];
loadImageList(ref winOutline, "winOutline");
Для этого папка должна быть настроена следующим образом:

Код: Выделить всё

Content
winOutline
1.png
2.png
3.png
4.png
5.png
6.png
7.png
8.png
9.png
10.png
11.png
12.png
Обычно это работает нормально. В своей игре я вызываю эту функцию несколько раз для нескольких разных листов спрайтов разной длины. Внезапно, когда я добавил 12-е изображение в папку winOutline, оно перестало работать и выдало следующее сообщение об ошибке:

Код: Выделить всё

Microsoft.Xna.Framework.Content.ContentLoadException: 'Asset does not appear to be a valid XNB file. Did you process your content for Windows?'
Я проверил папку bin, которую MonoGame автоматически создает, и обнаружил, что в winOutline/12.png действительно есть файл XNB. Во время отладки я также следил за функцией loadImageList и увидел следующее: для каждого значения i от 0 до 10 spriteList является правильным файлом. Когда i = 11, файл должен быть {winOutline/12}, но вместо этого он имеет значение NULL. Переменная fileName имеет правильный формат "winOutline/12".
Я несколько раз пытался перестроить файл в редакторе содержимого MGCB, но ничего не дало.
У меня нет представления о том, что происходит.
РЕДАКТИРОВАТЬ:
Я удалил и переделал изображение, и оно сработало. Я все еще оставляю этот вопрос открытым на случай, если кто-нибудь поймет, что происходит, чтобы я мог избежать этой проблемы в будущем.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -when-i-do

Вернуться в «C#»