Какой у вас рабочий каталог?Обычно это bin \ Debug (расположение создаваемого exe-файла), и если вы не говорите Visual Studio скопировать файлы содержимого в этот каталог, они там не находятся.
Несколько опций для исправления этого
- Вы можете добавить файлы содержимого в Visual Studio и установить для них режим развертывания
Copy
- Вы можете вручную скопировать их один раз
- Вы можете проверить,текущий каталог содержит определенный файл и поднимается на два уровня, если он не
- . Вы можете использовать константу, чтобы определить базовый каталог и согнуть его в зависимости от того, отлаживаетесь вы или нет.
Вот пример 3
private string BaseDirectory = ".";
if (!Directory.Exists(".\Graphics"))
{
BaseDirectory = @"..\..";
}
...
Content.Load<Texture2D>(BaseDirectory + @"\Graphics\Characters\Char1");
Вот пример 4, обратите внимание, что если вы работаете в режиме релиза, это не будет работать слишком гладко.
#if DEBUG
private const string BaseDirectory = @"..\..";
#else
private const string BaseDirectory = @".";
#endif
...
Content.Load<Texture2D>(BaseDirectory + @"\Graphics\Characters\Char1");
Также обратите внимание, что строка, начинающаяся с @
, не допускает экранирования \
и, таким образом, ее намного проще использовать для определения каталогов.