xna опубликовал проект без конвейера контента? - PullRequest
1 голос
/ 06 сентября 2011

Я работаю над личным проектом для обучения в XNA.Я читал в Интернете, что для использования конвейера контента требуется, чтобы у людей была установлена ​​среда выполнения xna.Поэтому я решил загрузить файлы, используя Texture2D.FromStream .

Все хорошо, когда я запускаю проект из Visual C #, но когда я публикую проект и запускаю его, онразбился сразу.Я не уверен, есть ли способ узнать больше информации о сбое, но я предполагаю, что нет.Я думаю, это сводится к тому, чтобы не использовать конвейер контента.

Когда я просматриваю файлы приложения для опубликованного проекта, я вижу только файлы .xnb.и никаких сырых .png и .xml файлов, которые я использую.

Я пытался поместить туда файлы вручную, но это не сработало.Все файлы находятся в папке «Projectname \ bin \ x86 \ Debug \ Content».

У кого-нибудь есть идеи?


edit

Я только что переписал свой контент-менеджер, чтобы он использовал конвейер контента, и опубликованный проект теперь отлично работает на моем компьютере.Поэтому я должен найти способ заставить его работать без конвейера контента

Ответы [ 2 ]

2 голосов
/ 06 сентября 2011

если вы работаете с Texture2D.FromStream, вам нужно учитывать два факта:

  1. Вы должны изменить свойства некоторых ресурсов:

    • Компилировать действие: Нет
    • Копировать в папку результатов: Всегда

      Таким образом, xnb не будет собран, а вместо этого вы получите свои ресурсы

  2. Вы должны установить соответствующий путь, теперь у вас нет «bin \ Debug» на вашем пути.

0 голосов
/ 06 сентября 2011

Как упоминает @Blau, изменение свойств изображения решит вашу проблему.Как вы можете видеть, метод FromStream теперь полностью поддерживается во фреймворке на всех платформах:
http://blogs.msdn.com/b/shawnhar/archive/2010/05/10/image-codecs-in-xna-game-studio-4-0.aspx.

Что касается ошибок ... вы всегда можете поставить ловушку try вокруг операторавы думаете, что выдает ошибку, а затем выводите текст ошибки на экран, чтобы вы могли его увидеть.Что-то вроде

try
{
    //The offending code
}
catch(Exception ex)
{
    WriteError(ex.Message);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...