User Profile
mattplan8
Brass Contributor
Joined Jan 28, 2020
User Widgets
Recent Discussions
Re: Need Help in Applying File Redirection Fixup in MSIX Packaging Tool
Looks like I'm missing out I haven't seen the builtin psf (I've always done it manually). I will say a couple things. a) you shouldn't need a file fixup for appdata, writes will already be virtualized into the directory %localappdata%\packages\[packagename]\localcache What I have seen quite often is if a directory already exists in appdata, it will leak outside the container and reuse the existing folder first. ex. normal app uses: %localappdata%\myapp if that folder already exists, msix will happily use it, and nothing will populate in the localcache folder. (easy solution is to remove, or even move it to the localcache folder). What you will find out really soon, is that files you put in the container appdata to customize the user config, aren't used/read in the package at all (unless it's normally read from the core install folder). So if you think you are adding in that special json config, or xml, or license file in appdata.. nope it won't read it. What you end up needing to do is have a launch script via psf that copies files from the container and psf does a nice job of at least providing that functionality. Furthermore, anytime you do need psf for a write permission, it's so much faster (in my opinion) to use ILV Outside of the <Applications> in the app manifest as direct child element to <Package> you can create an <Extensions> (not to be confused with the <Extensions> UNDER the <Applications>) section like this: <Extensions> <uap10:Extension Category="Windows.InstalledLocationVirtualization"> <uap10:InstalledLocationVirtualization> <uap10:UpdateActions ModifiedItems="keep" DeletedItems="reset" AddedItems="keep" /> </uap10:InstalledLocationVirtualization> </uap10:Extension> </Extensions> bit for info here: https://learn.microsoft.com/en-us/uwp/schemas/appxpackage/uapmanifestschema/element-uap10-updateactions1.3KViews1like3CommentsRe: MSIX Breakaway in 22h2+ (win 10 + 11)
Just for clarity I've tested on win 10 21h2 and win 11 22h2 and the behavior is the same (at least for these applications) I have actually never been able to confirm the behavior I've seen Tim write about (that it's native behavior is to stay within the container). This also happens without psf, I normally end up using psf because of first time run scripts or simlar, but I've never had a scenario where the file fixup has really accomplished what I was hoping for, or in more recent packages I just used ILV and i found it more reliable. To test whether my work around will work for you Martijnk79 try the following: add the package to your user: add-apppackage [pathtomsix] then use the powershell commandlet: Invoke-CommandInDesktopPackage -packagefamilyname [packagefamilyname] -appid [the app id as it appears in the AppManifest.xml] -command cmd -preventbreakaway an example might be: Invoke-CommandInDesktopPackage -PackageFamilyName Microsoft.MicrosoftEdge.Stable_8wekyb3d8bbwe -appid MSEDGE -command cmd -preventbreakaway I made up the appid in the above example, it's probably not correct, but you can find the appid in your app manifest, a common mistake is to think it's the App name from get-apppackage, it is not (althought they sometimes are the same value). If from that command window you can launch your application, and functions that launch child processes function correctly, you are in my boat. Welcome, there's plenty of room :). To work around it, I made a wrapper script, example: $packagefamily = "Linqpad7_1468n5jdfjaw" $appid= "LINQPADSevenXEightSix" $name = "Linqpad7" $app = get-apppackage $name Invoke-CommandInDesktopPackage -PackageFamilyName $packageFamily -appid $appid -command "$($app.InstallLocation)\VFS\ProgramFilesx64\LINQPAD7\LINQpad7-x86.exe" -PreventBreakaway Adjust the variables to suit your package of course. No need for updates version after version as long as the basic path stays the same. Then I use P2EXE to convert to a EXE, sign it to make my security team happy, and pop it in the package and replace the default exe in the app manifest with the compiled script from above (or if I'm using psf for a startup script, I leave that and edit the config.json to launch my wrapper)1.2KViews0likes1CommentRe: MSIX Breakaway in 22h2+ (win 10 + 11)
Linqpad is another example (although more steps to reproduce the issue). Basically, everything is in the package, but some of the "child" apps are just tools executed from controls within the main application, the child apps aren't in the app manifest (maybe I should try manually adding them). In the symphony example, if you launch Symphony and sign in there is a button to take a screen shot and attach it to chat. When clicked that button launches screen_snipper.exe. By default that screen_snipper.exe is launching outside of the container, then can't find any of the dll's that are part of the container, and fails. When you explicitly tell the package to prevent breakaway, then it works and launches within the container. Hope that's sufficient information.1.3KViews0likes4CommentsMSIX Breakaway in 22h2+ (win 10 + 11)
I've been packaging in MSIX for a while now, but recently find myself troubleshooting more and more applications with child processes that are executing outside the msix container. I haven't been able to find anything in the xml reference that controls the behavior, but it would certainly be nice if it could be added to the app manifest. the examples are pretty niche to the industry, but symphony chat is a good example. They have a screen snipping tool that executes as a separate exe. by default it doesn't work, if run via invoke-commandindesktoppackage with -preventbreakaway, it works as expected. My workaround has been to make wrapper exe's and use psf to launch the wrapper (which subsequently is just a compiled powershell with invoke-commandindesktoppackage) I'd like a proper solution though, if MS reads this 😄 Tim M you probably will, so if you know of a more elegant solution let me know.1.8KViews1like9CommentsRe: Anyway to force child processes to execute in the container when repacking with msix packaging tool?
TIMOTHY_MANGAN Thanks Tim I'll give it shot, appreciate your activity on these forums. I was reading your blog recently for the PSF stuff but I haven't had to use it yet (well I guess until now). Seems like it would be an easy update if the powershell command can force the container behavior, I would have hoped microsoft would add in a similar toggle in the manifest.788Views0likes0CommentsMSIX application with required command line arguments - no stub
Just thought I'd share a method for specifying command arguments to your applications when using the msix packaging tool. create package as per normal. open up the package in the package editor after open the "Manifest File" find the <application> xml tag that corresponds with the executable you need to add arguments. within the same <application> tag add in uap10:Parameters="your parameters" ex. <Application id="mycoolapp" Executable="VFS\ProgramFiles\MyCoolApp\App.exe" uap10:Parameters="-nogui" EntryPoint="Windows.FullTrustApplication"> keep in mind only the bold part is relevant to adding command parameters. Also if you need quotes in your parameter, encase the whole thing with single quotes and it'll convert it for you to a friendly result ie: uap10:Parameters='"coolbeans" -stuff' After saving/closing it will validate your xml for you which is a nice bonus.2.3KViews0likes1CommentAnyway to force child processes to execute in the container when repacking with msix packaging tool?
Repacking a crappy java based app. initial packaging seemed fine, no major issues. During testing it failed and the application logs pointed at some files being missing. used invoke-commandindesktoppackage to confirm that the files were in fact in the container. another test using invoke-commandindesktoppackage with the -PreventBreakaway switch to execute the application, works. Just starting my msix journey, seems pretty nice but this is likely to be a sticking point for some apps if I can't force children to play in the boxes. Anyone have a solution other than creating a terrible shortcut to run the invoke powershell command? I haven't seen anything in the manifest xml options that looks like it would help me.869Views0likes2CommentsRe: Adding New WVD RemoteApp has issues with the ts allow list
Christian_Montoya Confirmed the next day 2 I had not manually fixed were working. I didn't get a chance to test if it's a log off/on or a unsubscribe/subscribe, but one of those fixed it. I'll post back when I have a bit more time to test specifically.3.6KViews0likes0CommentsRe: Adding New WVD RemoteApp has issues with the ts allow list
Christian_Montoya Thanks for the reply Christian! Just to clarify, when you say new connection are you referring to log off/on the host or subscribe/unsubscribe within the RDC app? I can definitely try it out. Not sure if you saw my other post regarding recent files/jump lists + remote apps, but if you had a moment to review that I would also be very grateful (https://techcommunity.microsoft.com/t5/windows-virtual-desktop/wvd-remote-app-recent-files-not-populated/m-p/1133773). I was going to engage premium support but I don't even see WVD listed in the ticket options for Azure.3.6KViews0likes0CommentsAdding New WVD RemoteApp has issues with the ts allow list
I've been running WVD Multi-session using RemoteApp groups/apps for about a month now. Initially when I used the powershell commandlets for New-RdsRemoteApp I had no issues, but recently I've been having to manually add in the registry keys for the TSAppAllowList. Suffice to say this makes things quite laborious. I tried setting the fdisabledallowlist and haven't had any luck. I'm a single host in a pool using service principal creds, I have a mix of apps that are created via app "aliases" and some that are created manually. New apps of both types now will show up in the RDC client and start menu, but when launching will show the classic error related to TSAppAllowList registry keys missing and is resolved by me manually creating the keys.Solved3.9KViews0likes5CommentsRe: Personal Desktops
HandA No issue scaling up/down. The main thing you want to watch for is if you are using the ds series and provision premium ssd disks, you won't be able to scale to a size that doesn't support premium disks (aka sku's without the s). I provisioned a WVD initially on an E sku then swapped it for a B (bursting) sku as it was a better price/performance for my clients work habits. In some cases to see all available sku's you need to shutdown the vm, resize then boot it back up. As for mixing sku's in a pool. The main issue you might find is how it load balances. They just have a basic breadth/depth load balancing option. If you have one machine larger, to my knowledge there isn't a way to say machine A gets 70% of logins while machine B (smaller) gets 30% (assuming multi-session). If these are assigned vm's then basically ignore what I've posted above. https://docs.microsoft.com/en-us/azure/virtual-desktop/host-pool-load-balancing1.9KViews1like3CommentsWVD Remote app Recent files not populated
Hey All, I've setup WVD and am using Remote App rather than the full desktop experience. All is working very well with the exception of one annoying issue: Recent files aka Windows 10 Jump Lists, don't populate when using remote apps. I have file explorer and individual apps published and when say opening a pdf, or non Office document, they won't show up in the recent files list in other apps (like Outlook for example). I've moved the user to full desktop experience and it works fine, move them back to remote app and the old ones from his full desktop session exist, but no new documents/shortcuts appear in %appdata%/microsoft/windows/recent I feel like this is probably a bug with how the api auto generates shorcuts in the recent folder. MS can you confirm this is a shortfall for WVD Remote Apps? Any chance there is a fix in the works?2.4KViews0likes3Comments
Recent Blog Articles
No content to show