У меня есть проект CF.NET. В каталоге проекта я поместил простой XML-файл (users.xml), который должен быть прочитан устройством. Когда я отлаживаю приложение на эмуляторе устройства и попытке загрузить файл из кода, Исключение выдается (FileNotFoundException "Could not find file '\\users.xml'."
).
Существует ли механизм для автоматического развертывания также конфигурационных файлов на эмуляторе устройства?
У вас в коде неправильно задан путь. После выполнения инструкций Shaihi или Sphynx, чтобы заставить Studio развернуть файл, файл находится в папке с приложением.
Основываясь на том, что вы получаете ошибку, что она не может найти "\users.xml" говорит мне, что вы либо говорите ей искать в корневой папке, либо вы не указали папку.
Windows CE требует, чтобы вы предоставляли полностью вычисленный путь, поэтому ваше приложение должно либо использовать полный путь, по которому оно развернуто (т.е. "\Program Files\MyApp\users.xml"), либо вам нужно сконструировать путь:
Path.Combine(
Path.GetDirectoryName(
Assembly.GetExecutingAssembly().GetName().CodeBase
), "users.xml");
Вы можете попробовать добавить файл в свое приложение, установив «Действие сборки» для содержимого и включив «Копировать в выходной каталог». Кроме того, я считаю, что в настройках эмулятора есть опция, которая позволяет обмениваться файлами между эмулятором и хост-ОС.
Вот как это сделать в VS2005. Он развертывает файл вместе с проектом.
Это для нативного приложения - для управляемого должно быть аналогично. Поле
Content
указывает, следует ли развертывать файл на целевой объект. Файл развертывается в тот же каталог, что и приложение. Я не уверен, как VS2005 обрабатывает развертывание в случае, если вы обновили файл, то есть вам, возможно, придется вручную удалить его на устройстве.
VS2005 http://www.freeimagehosting.net/uploads/255e2922df.jpg