Я написал приложение. Net Windows, которое использует общую папку данных приложения для хранения файлов журналов и учетных записей пользователей. Приложение распространяется с использованием проекта Install Shield и отлично работает на всех различных Windows версиях.
Некоторые части кода из разных файлов показаны ниже
// Defining the path to use (in ProductInfo class)
public static string CommonApplicationDataPath
{
get
{
string path = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
path = StringHelper.EnsureEndsWithSlash(path);
path += Vendor + @"\" + ProductName + @"\";
return path;
}
}
// Configuring the logger and user manager instances at startup
Logger.Configure(string.Empty, ProductInfo.Password, ProductInfo.CommonApplicationDataPath);
UserManager.Configure(User.Empty, ProductInfo.Password, ProductInfo.CommonApplicationDataPath,
ProductInfo.UserLimitCount);
// Example method for saving the users to file (in UserManager class)
public bool SaveUsers(AppUsers appUsers)
{
AppUsersSerializer serializer = new AppUsersSerializer(_password, _fileName);
if (serializer.Serialize(appUsers) == true)
{
return true;
}
else
{
Logger.Instance.Log(Logs.ErrorB.UserSave, _fileName);
return false;
}
}
Я хотел бы сейчас опубликовать sh приложение через Windows Store и использовать MSIX Packaging Tool. Чтобы подписать пакет, я создал самозаверяющий сертификат и добавил его в доверенные Root центры сертификации. Пакет .msix устанавливается на тот же P C, что и моя старая версия приложения для настольного компьютера.
У меня проблема в том, что приложение не может записывать в файлы, расположенные в CommonApplicationData
папки. Приложение может считывать и загружать данные, но не обновлять и не записывать изменения в файлы. Таким образом, путь к файлам правильный, но некоторые права на запись отсутствуют. Я пробовал разные возможности пакета и даже отмечал все, но без какого-либо эффекта.
Я также просмотрел папку C:\Program Files\WindowsApps\<my app package>\
, проверил структуру приложения и обнаружил файлы. Они есть, но только для чтения для приложения. Удаление файлов не приведет к созданию новых, когда они должны быть добавлены, как это было сделано в старой версии Windows Forms для рабочего стола.
Приложение довольно большое и содержит множество функций, которые прекрасно работают в контексте приложения Windows Store. Единственный недостающий фрагмент - это вышеупомянутые проблемы с записью файла.
Любой совет будет очень признателен.