MSIX
122 TopicsAppx Package Leaves Behind DLLs on Uninstall (Pipeline vs Local Debug Build)
Hello everyone, I'm encountering an issue with my WPF application that's packaged as an appx file for sideloading. I'm new to this area, so any guidance or suggestions would be greatly appreciated. Issue Overview: Pipeline Build (Release): The appx package generated in our build pipeline (with code signing) installs and runs as expected. However, after uninstalling the app, certain DLLs remain in the Windows app folder. Local Build (Debug): When I generate the appx package locally using Visual Studio in Debug mode and perform the install/uninstall on the same device, the DLLs are cleaned up properly. I didn't changed any property in the appxmanifest.xml other than the publisher name and the certificate.24Views0likes0CommentsApp Attach only working if the App is Installed Locally First
I am trying to use App Attach to provide an application to my virtual desktop environment. The environment is currently 100% Entra ID, no DS if possible. RemoteApp host pool with Standard_D4as_v6 VMs running Windows 11 24H2 multi-session (no office 365 apps). I am having troubles getting App Attach working as I understand it should. I packaged my app into MSIX on one of the session hosts via admin account. My app is self-signed with .PFX, each session host has the corresponding .CER file in Trusted People AND Trusted Root Certification Authorities (conflicting advice online led me to just do both). I converted .MSIX to .CIM disk via MSIXMGR on the same session host. msixmgr.exe -Unpack -packagePath "path\file.msix" -destination "path\file.cim" -applyACLs -create -fileType cim -rootDirectory apps I uploaded the .CIM file and the 6 supporting files to Azure Files Storage Account. All hosts have access to the azure storage account via access key, which I know is working because I’m using a different File Share in the same Storage Account to run FSLogix which has been working great. I haven't made any NTFS changes in my environment so far. On the storage account: Reader and Data Access is granted to Windows Virtual Desktop and Windows Virtual Desktop ARM Provider. Storage File Data SMB Share Reader is granted to each VM. Create App Attach resource, assigned it to the associated app group/workspace/host pool. I can see my app under the Apps tab in the Windows App/Remote Desktop app. Now into the Windows App: when I click my app, it will load forever on “Securing Remote Session…” and if I click “Show Details” to see the Windows login screen, it is always frozen on “Preparing Windows”. I’ve switched the host pool to “Desktop” mode and my user can log in to the full desktop with no issues, it is just the remote app that gets hung up. BUT if I log into the VM with my admin account, I launch my MSIX package, and approve the installation of my app, that makes it all work. Now I can go back to the Windows App and launch my remote app as a regular user, and it works perfectly. (Assuming I make the host pool assign the user to the session host where I manually installed the app) As far as I understand, this shouldn’t be a requirement to get App Attach working, so I’m looking for advice or information as to why manually installing the app would fix my problem. I am suspicious of the self-signed certificate; I’d rather not buy one but let me know if that’s what I’m stuck doing. I’m also curious if the “App-Attached” version of my app is running, or if its just targeting the locally installed version behind the scenes on me… I am going to do more testing and see if I can prove that. Thanks for the help!227Views0likes8CommentsMSIX Package working on 23H3 but not 24H3: System.Numerics.Vectors conflict
NOTE: There may be multiple issues that match the generic "MSIX packages that work on Windows 11 23H3 fail upon launch on 24H2". This is a specific issue and anyone with different symptoms should start a new issue rather than jump onto this one. I have an MSIX package that consists of three applications, all built using .Net Framework 4.8.1. The package works great on Windows 10, and Windows 11 22H2 and 23H2. On Windows 11 24H2 the package fails as one of the three applications crashes without UI appearing. In one case, I tested the app installed on 23H2 successfully and after installing the OS upgrade to 24h2 the application now fails. The symptoms are that the crash occurs early, apparently before the mainwindow initializes, a WerFault occurs, and there is an interesting event in the Windows Logs/Application file. My analysis of the situation is that there is a new conflict in System.Numerics.Vectors versions that did not cause an issue on the earlier OS builds I tested. All three applications in the package use checkboxes in the mainpage.xaml. It appears to me from the dump file that this wants to use System.Numerics.Vectors 4.1.4.0. A difference in the problem app from the other two in the package (which also use checkboxes) is that the app uses the NuGet package PowerShellStandardLibrary 5.1.1. This library claims no dependencies have noticed it needs a newer version of System.Numerics.Vectors anyway. The package has the NuGet package System.Numerics.Vectors 4.6.0 installed in two of the three applications in the package, including the broken app and one app without the issue (which is not using the PowerShell library). The interesting event recorded is from .Net Runtime, EventId=1026. Log Name: Application Source: .NET Runtime Date: 12/22/2024 3:42:23 PM Event ID: 1026 Task Category: None Level: Error Keywords: Classic User: N/A Computer: VS2023.TMU.int Description: Application: MSIXDeploy.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.IO.FileLoadException at WinRT.Projections..cctor() Exception Info: System.TypeInitializationException at WinRT.Projections.RegisterAbiDelegate(System.Type[], System.Type) at WinRT.AbiDelegatesInitializer.InitalizeAbiDelegates() at <Module>..cctor() Exception Info: System.TypeInitializationException at MSIXDeploy.MainWindow.ApplyFilterToList(Boolean) at System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean) at System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs) at System.Windows.Controls.Primitives.ToggleButton.OnIsCheckedChanged(System.Windows.DependencyObject, System.Windows.DependencyPropertyChangedEventArgs) at System.Windows.DependencyObject.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs) at System.Windows.FrameworkElement.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs) at System.Windows.DependencyObject.NotifyPropertyChange(System.Windows.DependencyPropertyChangedEventArgs) at System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.EntryIndex, System.Windows.DependencyProperty, System.Windows.PropertyMetadata, System.Windows.EffectiveValueEntry, System.Windows.EffectiveValueEntry ByRef, Boolean, Boolean, System.Windows.OperationType) at System.Windows.DependencyObject.SetValueCommon(System.Windows.DependencyProperty, System.Object, System.Windows.PropertyMetadata, Boolean, Boolean, System.Windows.OperationType, Boolean) at System.Windows.Baml2006.WpfMemberInvoker.SetValue(System.Object, System.Object) at MS.Internal.Xaml.Runtime.ClrObjectRuntime.SetValue(System.Object, System.Xaml.XamlMember, System.Object) Exception Info: System.Windows.Markup.XamlParseException at System.Windows.Markup.XamlReader.RewrapException(System.Exception, System.Xaml.IXamlLineInfo, System.Uri) at System.Windows.Markup.WpfXamlLoader.Load(System.Xaml.XamlReader, System.Xaml.IXamlObjectWriterFactory, Boolean, System.Object, System.Xaml.XamlObjectWriterSettings, System.Uri) at System.Windows.Markup.WpfXamlLoader.LoadBaml(System.Xaml.XamlReader, Boolean, System.Object, System.Xaml.Permissions.XamlAccessLevel, System.Uri) at System.Windows.Markup.XamlReader.LoadBaml(System.IO.Stream, System.Windows.Markup.ParserContext, System.Object, Boolean) at System.Windows.Application.LoadBamlStreamWithSyncInfo(System.IO.Stream, System.Windows.Markup.ParserContext) at System.Windows.Application.DoStartup() at System.Windows.Application.<.ctor>b__1_0(System.Object) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(System.Object) at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object) at System.Windows.Threading.DispatcherOperation.Invoke() at System.Windows.Threading.Dispatcher.ProcessQueue() at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr) at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef) at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame) at System.Windows.Application.RunDispatcher(System.Object) at System.Windows.Application.RunInternal(System.Windows.Window) at MSIXDeploy.App.Main() Event Xml: <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name=".NET Runtime" /> <EventID Qualifiers="0">1026</EventID> <Version>0</Version> <Level>2</Level> <Task>0</Task> <Opcode>0</Opcode> <Keywords>0x80000000000000</Keywords> <TimeCreated SystemTime="2024-12-22T20:42:23.1118353Z" /> <EventRecordID>757</EventRecordID> <Correlation /> <Execution ProcessID="10692" ThreadID="0" /> <Channel>Application</Channel> <Computer>VS2023.TMU.int</Computer> <Security /> </System> <EventData> <Data>Application: MSIXDeploy.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.IO.FileLoadException at WinRT.Projections..cctor() Exception Info: System.TypeInitializationException at WinRT.Projections.RegisterAbiDelegate(System.Type[], System.Type) at WinRT.AbiDelegatesInitializer.InitalizeAbiDelegates() at <Module>..cctor() Exception Info: System.TypeInitializationException at MSIXDeploy.MainWindow.ApplyFilterToList(Boolean) at System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean) at System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs) at System.Windows.Controls.Primitives.ToggleButton.OnIsCheckedChanged(System.Windows.DependencyObject, System.Windows.DependencyPropertyChangedEventArgs) at System.Windows.DependencyObject.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs) at System.Windows.FrameworkElement.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs) at System.Windows.DependencyObject.NotifyPropertyChange(System.Windows.DependencyPropertyChangedEventArgs) at System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.EntryIndex, System.Windows.DependencyProperty, System.Windows.PropertyMetadata, System.Windows.EffectiveValueEntry, System.Windows.EffectiveValueEntry ByRef, Boolean, Boolean, System.Windows.OperationType) at System.Windows.DependencyObject.SetValueCommon(System.Windows.DependencyProperty, System.Object, System.Windows.PropertyMetadata, Boolean, Boolean, System.Windows.OperationType, Boolean) at System.Windows.Baml2006.WpfMemberInvoker.SetValue(System.Object, System.Object) at MS.Internal.Xaml.Runtime.ClrObjectRuntime.SetValue(System.Object, System.Xaml.XamlMember, System.Object) Exception Info: System.Windows.Markup.XamlParseException at System.Windows.Markup.XamlReader.RewrapException(System.Exception, System.Xaml.IXamlLineInfo, System.Uri) at System.Windows.Markup.WpfXamlLoader.Load(System.Xaml.XamlReader, System.Xaml.IXamlObjectWriterFactory, Boolean, System.Object, System.Xaml.XamlObjectWriterSettings, System.Uri) at System.Windows.Markup.WpfXamlLoader.LoadBaml(System.Xaml.XamlReader, Boolean, System.Object, System.Xaml.Permissions.XamlAccessLevel, System.Uri) at System.Windows.Markup.XamlReader.LoadBaml(System.IO.Stream, System.Windows.Markup.ParserContext, System.Object, Boolean) at System.Windows.Application.LoadBamlStreamWithSyncInfo(System.IO.Stream, System.Windows.Markup.ParserContext) at System.Windows.Application.DoStartup() at System.Windows.Application.<.ctor>b__1_0(System.Object) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(System.Object) at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object) at System.Windows.Threading.DispatcherOperation.Invoke() at System.Windows.Threading.Dispatcher.ProcessQueue() at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr) at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef) at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame) at System.Windows.Application.RunDispatcher(System.Object) at System.Windows.Application.RunInternal(System.Windows.Window) at MSIXDeploy.App.Main() </Data> </EventData> </Event> I took a full dump (available upon request), and the analysis points to code the crash occurring in code that is processing in System.Windows.Markup.WpfXamlLoader:Load and an inner exception says Name Value Type ◢ InnerException {"Could not load file or assembly 'System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)":"System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"} System.Exception {System.IO.FileLoadException} I am pretty much out of my element in debugging XAML processing, but this pretty much smells like a Microsoft bug in an OS supplied component. Feel free to reach out to me for the dmp file or MSIX package if you'd like it.Solved295Views0likes2CommentsMSIX package and shortcut icons
I see some strange behavior and can't explain why it is not working. I am playing around with the MSIX package and shortcut icons. I created them using the Visual Asset generator (https://apps.microsoft.com/detail/9mz6qrqtdkf2?hl=en-US&gl=US) and copied them to the Assets folder. When configuring the shortcuts with the files, the shortcuts and package logo stays blank. When I open the manifest and point the entries hardcoded to the files the icons appear. Like this config below. <Application Id="PSFLAUNCHERTwo" Executable="PsfLauncher2.exe" EntryPoint="Windows.FullTrustApplication"> <uap3:VisualElements AppListEntry="default" BackgroundColor="transparent" Description="Fair Prod" DisplayName="Fair Prod" Square150x150Logo="Assets\Edge-Square150x150Logo.scale-400.png" Square44x44Logo="Assets\Edge-Square44x44Logo.scale-400.png" VisualGroup="FCA"></uap3:VisualElements> </Application> But when removing the ".scale-400" part of the files, the icons would not appear. Anyone knows what I am doing wrong here?72Views0likes1CommentPsfLauncher and shortcut to url
Did not yet tried myself, but does anyone know if it is possible to create a MSIX shortcut, which does start a url to e.g. www.google.com using the default browser? Maybe with psflauncher and config.json configuration? I now use a cmd, containing ‘start https://www.google.com’, which does work. But maybe this can we made easier?Solved73Views0likes2CommentsMSIX write HKLM in the bubble?
Already trying for some days, but can't make it work. Or is it not possible al all? I have MSIX in which (in the bubble!!!) i want to set hkcu and hklm registry settings. For hkcu it is working, but hklm is not writable. What i do wrong or is this not possible at all? I first want to know if it should be possible. If so, i can share my psflauncher and config.json config files.Solved140Views1like7CommentsUnderstanding App Isolation Behavior in MSIX: Issue with System State Restoration After Crash
We have an application built with .NET Forms, while the security components (DLLs) are developed in C++. Recently, we packaged our application using MSIX (App Isolation) and signed it with a self-signed certificate. The Application launches and functions as expected. However, when we introduce an intentional crash (e.g., a null pointer exception), the system does not restore the changes made by the application, such as hiding the taskbar. Our understanding was that App Isolation would help revert any system modifications after a crash, but it seems this isn't the case. Is this expected behavior for App Isolation in MSIX, or are we missing something in our configuration? Any insights on ensuring system state restoration would be appreciated.31Views1like0CommentsMSIX dynamic start menu configuration
With AppV it was possible to configure profiles at the streaming server and assign shortcuts/start menu entries from the AppV package to AD groups. Is it possible to so something similar with MSIX? So a MSIX package has four start menu entries abcd. Member of AAD group X get shortcuts ab Member of AAD group Y get shortcuts cd Anyone has an idea if this can be done by some scripting?66Views0likes2CommentsUnderstanding App Isolation Behavior in MSIX: Issue with System State Restoration After Crash
We have an application built with .NET Forms, while the security components (DLLs) are developed in C++. Recently, we packaged our application using MSIX (App Isolation) and signed it with a self-signed certificate. The Application launches and functions as expected. However, when we introduce an intentional crash (e.g., a null pointer exception), the system does not restore the changes made by the application, such as hiding the taskbar. Our understanding was that App Isolation would help revert any system modifications after a crash, but it seems this isn't the case. Is this expected behavior for App Isolation in MSIX, or are we missing something in our configuration? Any insights on ensuring system state restoration would be appreciated.24Views0likes0Comments