Файл XNA Silverlight не найден

#c# #.net #silverlight #windows-phone-7 #xna

#c# #.net #silverlight #windows-phone-7 #xna

Вопрос:

Это смущает. Это проблема с файлом, который не найден в моем проекте XNA Silverlight.

Я модифицирую образец «My Little Teapot» XNA Silverlight для Windows Phone 7, вhttp://msdn.microsoft.com/en-us/library/ff431744(v=vs.92).aspx и я получаю ошибку «Файл не найден» в OnNavigatedTo (), когда я просто пытаюсь загрузить текстуру:

myTex = содержимое.Загрузка («tex1»);

(Вы заметите, что это не обычный вопрос «файл не найден», когда программист пытается загрузить «tex1.png» вместо «tex1».)

Мое решение имеет тот же проект, что и в примере, «sdkMyLittleTeapotCS», и проект контента, который я добавил, «мой контент». Я добавил «tex1.png» в проект «мой контент», и его имя ресурса действительно «tex1». Для его действия сборки установлено значение «Компилировать», и я попытался установить для параметров «Копировать в выходной каталог» значение «Не копировать» (что работает в моих обычных проектах XNA), а также «Копировать, если новее».

Во всех случаях я получаю исключение с файлом, который не найден. Что этот идиот делает не так? Заранее спасибо!

Ответ №1:

Не следует ли установить для действия сборки значение Content вместо Compile?

Комментарии:

1. Я просто установил действие сборки для .png в «Содержимое» и получаю ту же ошибку «файл не найден». Как бы то ни было, в другом моем проекте WP7 я вижу, что действие сборки для .png установлено в «Compile».

Ответ №2:

Разве ваш код не должен читать :

myTex = content.Load<Texture2D>("tex1");

Ответ №3:

Удалите текстуру-нарушитель из вашего проекта контента, но не удаляйте ее с диска. Затем перетащите его из окна проводника обратно в свой проект содержимого и убедитесь, что имя остается «tex1» — это заставит проект содержимого воссоздать ассоциации с текстурой, которые в их текущем виде кажутся плохими.

Ответ №4:

Возможно, у вас есть файл tex1 во вложенной папке. В этом случае вы должны указать полный путь:

 myTex = content.Load<Texture2D>("foldername/tex1");