XNA - Как добавить файл settings.ini в игру по умолчанию при установке?

Я получил файл settings.ini, который я хочу включить в игру при установке. Он должен находиться в папке с именем "Настройки" и находиться в том же каталоге, что и остальная часть игры (например, исполняемый файл и папка с содержимым по умолчанию).

Я думал, что просто добавлю дополнительный пустой контентный проект в свое игровое решение и добавлю в него файл settings.ini.

Угадай, что! Не работает

Это дает мне следующую ошибку:

Ошибка 6 Не удается автоматически определить, какой импортер использовать для "Settings.ini". Там нет импортеров, которые обрабатывают этот тип файла. Укажите импортер, который обрабатывает этот тип файла в вашем проекте. PATH_TO_GAME\Settings\Settings.ini

Я немного погуглил, но, похоже, мне нужно написать собственный конвейер контента.

Есть ли лучший / более простой способ сделать это? Я не хочу тратить свое время на написание этой очень сложной части.

PS. Если я установлю игру и добавлю файл settings.ini в каталог настроек, я смогу записать и прочитать файл settings.ini. Но теперь я должен добавить файл settings.ini вручную, чего я не хочу. Я хочу, чтобы он был включен в игру при установке.

2 ответа

Решение

В вашем игровом проекте (не в контентном проекте!) Добавьте Settings папка и Settings.ini файл. Вы могли бы использовать Add -> Existing Item... для файла, если у вас уже есть.

Добавить файл настроек

Под Properties для файла установите Build Action в Content а также Copy to Output Directory в Copy if newer,

Ваш файл настроек теперь будет развернут вместе с вашим приложением.

Возьмите все содержимое вашего файла.ini и вставьте его в код вашей игры:

string path = @"path\to\your.ini";
if (!File.Exists(path))
    using (var sw = File.CreateText(path))
    {
    sw.WriteLine(@"This is the .ini file text.");
    sw.WriteLine(@"It can contain all sorts of characters, like !@#$%^&*()_+|");
    sw.WriteLine(@"But you need to use double quotes "" so you don't get errors");
    }
Другие вопросы по тегам