#c# #xna #windows-phone #xna-4.0
#c# #xna #windows-phone #xna-4.0
Вопрос:
Я разрабатываю игру для Windows Phone 7.1 с помощью XNA framework. Я знаю, что есть способ предотвратить пиратство для Windows Phone 7 (и 8.0, 8.1) — проверка, является ли файл «WMAppPRHeader.xml » существует в каталоге приложений. Я использую этот код:
try
{
Stream stream = TitleContainer.OpenStream("WPAppPRHeader.xml");
if (stream.CanRead)
{
stream.ReadByte();
stream.Close();
}
}
catch
{
//file read error, it means it was hacked
}
Когда я использую этот код и загружаю свою игру на Windows phone marketplace в качестве «Бета«-приложения, оно отлично работает. Файл «WPAppPRHeader.xml «читается из моей игры, и тест пройден.
Но при загрузке того же XAP в Windows Phone marketplace в качестве общедоступного приложения этот код завершается ошибкой, и моя игра думает, что ее взломали (я проверяю это где-то посередине, поэтому тестировщики Microsoft не распознают, что что-то не так, и моя игра успешно проходит сертификацию).
Итак, что я делаю не так? Почему один и тот же код, один и тот же XAP работает, когда он бета, и не работает, когда он общедоступен?
Ответ №1:
Я все еще не знаю, почему TitleContainer.openStream работает в бета-версии и не работает на общедоступном рынке, но вот код, который работает на общедоступном рынке: System.Xml.Linq.XDocument.Загрузить («WPAppPRHeader.xml «);