Я пытаюсь выяснить, как переносить некоторый .Net-код, который анализировал XML файл на WinRT. До сих пор с помощью Данная System.Uri не может быть преобразована в Windows.Foundation.Uri, у меня есть код ниже. Тем не менее, я застреваю сразу после создания Uri:
    static readonly Uri ResourcesBase = new Uri(@"ms-resource://MyAssembly/"); 
    public override async void Load()
    {
        Uri uri = new Uri(ResourcesBase, filePath); // filePath = "Data//world.xml";
        XmlLoadSettings settings = new XmlLoadSettings() { ValidateOnParse = false };
        XmlDocument xmlDoc = await XmlDocument.LoadFromUriAsync(uri, settings);
        foreach (IXmlNode xmlNode in xmlDoc.ChildNodes)
        {
            ProcessNode(xmlNode);
        }
    }
Я получаю необработанное исключение, когда пытаюсь вызвать XmlDocument.LoadFromUriAsyn(uri):
ArgumentException не был обработан кодом пользователя. Значение не попадает в ожидаемый диапазон.
Кто-нибудь еще чувствует, что с WinRT все в 10 раз сложнее?
EDIT:
Я пробовал все следующие строки и получал ту же ошибку:
  Uri uri = new Uri("ms-resource://MyAssembly//" + filePath);
  Uri uri = new Uri("ms-resource://MyAssembly/" + filePath);
  Uri uri = new Uri("d:\\projects\\crystal\\" + filePath); // A valid absolute path
Настройка проекта:
Проект
- Свойства
- Ссылки
- Активы
-  Данные
- world.xml
 
- Исходный код...
В коде:
  filePath = "Data\\world.xml";
Я также попытался поместить файл xml под assset\data и просто активы. Кажется, что ничего не изменилось.
Другое дело, у меня есть действие Build xml, установленное в "Content". Это верно? Единственное, что я мог себе представить, это "Embedded Resource", но я сомневаюсь.
Полные сведения об исключении:
Ошибка System.ArgumentException не была обработана кодом пользователя
HResult = -2147024809
Сообщение = Значение не входит в ожидаемый диапазон.
Источник = Windows.Data.Xml.Dom
StackTrace:
в Windows.Data.Xml.Dom.XmlDocument.LoadFromUriAsync(Uri uri, XmlLoadSettings loadSettings)
в Crystal.IO.File.XmlFileSerializer.d__1.MoveNext() в d:\Projects\Crystal\library\IO\File\XmlFileSerializer.cs: строка 32
InnerException:
Загрузите наименьший пример, чтобы воспроизвести проблему: test_xml.zip
