在 WinUI 3 打包应用程序中,我尝试在 AppData\Local\MyApp
中创建一个文件夹。在我的应用程序启动中,我正在执行以下操作:
public App()
{
string apf = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string fp = Path.Combine(apf, "MyApp");
Directory.CreateDirectory(fp);
}
这不会在 AppData/Local 中创建任何目录。
当我运行这个时:
public App()
{
string apf = KnownFolders.GetPath(KnownFolder.AppData);
string fp = Path.Combine(apf, "MyApp");
Directory.CreateDirectory(fp);
}
在 AppData\LocalLow 中创建了一个名为“MyApp”的目录,这不是我正在寻找的目录。对我可能做错了什么有什么想法吗?
最佳答案
MSIX 的功能之一是它会在执行期间自动将对 AppData 的写入重定向到私有(private)的每用户、每应用位置。
这意味着您的目录实际上将位于 %localappdata%\Packages\PublisherName.AppName_hash\LocalCache\Roaming 中。
此行为是设计使然,也是遵守干净卸载应用程序 promise 的要求,即删除应用程序时所有内容都会被删除。
如果确实想从 MSIX 打包应用写入“真实”非虚拟化 %AppData% 位置,则必须按照建议编辑应用程序 list 来禁用文件重定向 here 。请注意,这有一些限制,不建议这样做。
关于winui-3 - WinUI 3 打包应用程序未在 AppData 中创建文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74634728/