Вызов ApplicationData.Current.LocalFolder.Path в WPF вызывает исключение

У меня есть приложение WPF, которое я переношу на UWP через настольный мост. В моем приложении WPF я обращаюсь к UWP API, чтобы получить путь к файлу пакета:

ApplicationData.Current.LocalFolder.Path

Но вызов этого API вызывает исключение, как показано ниже:

System.IO.FileNotFoundException: «Не удалось загрузить файл или сборку». System.Runtime, версия = 4.1.2.0, культура = нейтральная,

У меня есть манифест пакета с правильным идентификатором пакета, но я все еще не уверен, почему я получаю это исключение.


person Dishant    schedule 01.06.2018    source источник
comment
Попробуйте использовать строку path = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);   -  person Gaurang Dave    schedule 01.06.2018
comment
Спасибо, но это предоставит локальный путь, а не путь к пакету, в котором установлено приложение (UWP).   -  person Dishant    schedule 01.06.2018
comment
Вы читали это? blogs.msdn.microsoft.com/appconsult/2017/06/23/   -  person mm8    schedule 01.06.2018
comment
@ mm8 Упомянутая вами ссылка относится к WinForms, а не к WPF.   -  person Dishant    schedule 01.06.2018
comment
WPF - это Win32. В сообщении блога используется реальный пример с очень простым приложением Windows Forms. Может быть, вам стоит попробовать прочитать ее.   -  person mm8    schedule 01.06.2018
comment
Да, я прочитал статью, но, как упоминалось в моем посте, я хочу сохранить данные в локальном хранилище приложения. Вы можете обратиться к этому ответу SO, в котором указано, что это правильный способ хранения данных. (Это не поддерживается, поэтому вам нужно будет найти другое место, например локальное хранилище данных приложений.)   -  person Dishant    schedule 01.06.2018
comment
Я могу получить доступ к UWP ApplicationData.Current.LocalFolder.Path, но на самом деле не могу его использовать, поэтому также хочу знать, поддерживается ли он для настольного моста или нет, поскольку в MSDN нет четкой документации по нему.   -  person Dishant    schedule 01.06.2018
comment
@Dishant ApplicationData.Current.LocalFolder.Path возвращает значение строки пути. Что вы хотели сделать, используя это строковое значение пути?   -  person Xie Steven    schedule 04.06.2018
comment
@XavierXie-MSFT Я хочу передать этот путь на уровень данных, который отвечает за создание базы данных по указанному пути.   -  person Dishant    schedule 04.06.2018
comment
@Dishant Вам лучше использовать CreateFileAsync(String , CreationCollisionOption) метод LocalFolder для создания файла вместо пути.   -  person Xie Steven    schedule 04.06.2018
comment
@XavierXie-MSFT На самом деле я создал новый проект WPF и добавил ссылку на проект пакета UWP и смог использовать ApplicationData.Current.LocalFolder.Path, как и ожидалось. Далее посмотрю, почему он не работает с моим текущим проектом.   -  person Dishant    schedule 04.06.2018
comment
Строка @XavierXie-MSFT var file = ApplicationData.Current.LocalFolder.Path; вызывает исключение при запуске проекта. Если я закомментирую эту строку, она будет работать, как и ожидалось. То же самое для CreateFileAsync   -  person Dishant    schedule 04.06.2018


Ответы (1)