When using the FileRedirectionFixup, the C++ code modifies the path used in, lets say CreateFile, to something akin to \\?\C:\Users\username\AppData\Local\VFS\...
But then somewhere else below this, not in the Fixup and presumably in what I refer to as "the MSIX Runtime" for lack of a better name, this gets re-redirected to C:\Users\username\AppData\Local\Packages\Packagename\LocalCache\Local\VFS\...
In testing, I see this behavior affecting any redirected location that starts with C:\Users\username\AppData, but not if redirection code retargets to other places I have tried. Can we get a clear definition on when such re-redirection occurs and if there is any control that may be applied to that behavior.
And I know I'm likely to be asked what the scenario is. So here is why I need to know. Some applications write data and settings to locations in the user's roaming profile area so that these settings follow the user from machine to machine. The current behavior re-redirects these settings/data to the package LocalCache folder which is destroyed as soon as the user logs off of a non-persistent VDI or RDSH/RDMI session. This makes the app un-deployable in these environments via MSIX. I would like to construct a fixup that would redirect to a more suitable place, a home drive, network share, or local cloud cache like OneDrive or ShareFile or whatever.
So we need to know more about this re-redirection so that we don't run afoul of it in attempts to make things work.
As always thanks for your feedback Tim. It is a missing feature that we captured.
One of the options we discussed today is to enable it by turning off the Copy on write OS redirection for newly created files in pre-defined selected locations. Then the fixup you created will not be overwritten and work well for the AppData roaming folder redirection.