Различное поведение приложения при развертывании локально и из Магазина

При развертывании приложения из Магазина Windows (бета-версия) возникает странная проблема. Приложение написано как Windows Phone 8.1 RunTime.

У меня есть небольшой компонент времени выполнения Windows, написанный на C ++ / C #, который проверяет существование файла:

bool FileEx::FileExists(String^ path)
{
    std::wstring pathW(path->Begin());
    std::string myPath(pathW.begin(), pathW.end());
    FILE *file = NULL;
    if (fopen_s(&file, myPath.c_str(), "r") == 0)
    {
         fclose(file);
         return true;
    }
    else return false;
}
МЕТОД ИСПЫТАНИЙ:

Теперь давайте проверим это с двумя файлами - один в локальной папке и один в папке MusicLibrary. Все сделано в основном проекте, который имеет ссылку на WRC с вышеупомянутым методом в C ++ / C #.

const string localFileName = "local.txt";
const string musicFileName = "music.txt";
StorageFolder localFolder = ApplicationData.Current.LocalFolder;
StorageFolder musicFolder = await KnownFolders.MusicLibrary.CreateFolderAsync("MyFolder", CreationCollisionOption.OpenIfExists);
await localFolder.CreateFileAsync(localFileName, CreationCollisionOption.ReplaceExisting); // create local file
await musicFolder.CreateFileAsync(musicFileName, CreationCollisionOption.ReplaceExisting); // create file in MusicLibrary

а) Локальный файл Fist - тест с чистым C #:

// First check with C# if file exists - LOCAL FILE
StorageFile checkFile = null;
try { checkFile = await localFolder.GetFileAsync(localFileName); }
catch { checkFile = null; }
if (checkFile != null) await Trace.WriteLineAsync(false, "File exists with path = {0}", checkFile.Path);
else await Trace.WriteLineAsync(false, "File doesn't exist with path = {0}", checkFile.Path);

Второй с письменным компонентом:

Exception exc = null;
bool check = false;
try
{
    string path = string.Format(@"{0}\{1}", localFolder.Path, localFileName);
    await Trace.WriteLineAsync(false, "Attempt with WRC path = {0}", path);
    check = FileEx.FileExists(path);
}
catch (Exception ex) { exc = ex; }
if (exc != null) await Trace.WriteLineAsync(false, "Exception WRC");
else await Trace.WriteLineAsync(false, "No exception WRC, file exists = {0}", check);

б) То же самое с файлом в папке музыкальной библиотеки:

Кулак - тест с чистым C #:

checkFile = null;
try { checkFile = await musicFolder.GetFileAsync(musicFileName); }
catch { checkFile = null; }
if (checkFile != null) await Trace.WriteLineAsync(false, "File exists with path = {0}", checkFile.Path);
else await Trace.WriteLineAsync(false, "File doesn't exist with path = {0}", checkFile.Path);

Второй с письменным компонентом:

check = false;
exc = null;
try
{
   string path = string.Format(@"{0}\{1}", musicFolder.Path, musicFileName);
   await Trace.WriteLineAsync(false, "Attempt with WRC path = {0}", path);
   check = FileEx.FileExists(path);
}
catch (Exception ex) { exc = ex; }
if (exc != null) await Trace.WriteLineAsync(false, "Exception WRC");
else await Trace.WriteLineAsync(false, "No exception WRC, file exists = {0}", check);
РЕЗУЛЬТАТЫ:

В любом случае нет никаких исключений, как показывают чистые методы C #, оба файла существуют после их создания. Как вы можете видеть на рисунках, прикрепленных ниже, когда приложение разворачивается через Visual Studio, оно работает должным образом, компонент времени выполнения показывает оба файла, но когда приложение загружается из хранилища, ситуация другая - метод WRC работает для локальных файлов, но не для этого в MusicLibrary.

ВОПРОС:

В обоих случаях пути к файлам одинаковы, в обоих развертываниях компонент среды выполнения работает, следовательно, существует первый файл. Кажется, что компонент среды выполнения Windows не имеет доступа к MusicLibrary, несмотря на то, что все необходимые возможности установлены вpackageappx.manifest файл (локальное развертывание работает).

У кого-нибудь есть идея, почему компонент среды выполнения Windows не имеет доступа к файлу в MusicLibrary? Компонент времени выполнения Windows нуждается в некоторых дополнительных возможностях?
Есть ли способ заставить это работать?

Ответы на вопрос(1)

Ваш ответ на вопрос