The problem leading to this question is with an application that has a side-by-side UAC manifest with a requestedExecutionLevel of highestAvailable specified. This should switch Vista file virtualization off, but it does not. I want to find out why. The manifest is being used, as I checked by intentionally introducing a syntactic error, but I see no way of determining how it is being used.
It is memory based and clears only on a reboot - HOWEVER, I know for fact it does not always clear on a reboot and many others report this as well. I did find c:\windows\sxs\manifestCache and wonder if it really reloads from there on reboot.
See my comment to Wylder - have you tried to update the timestamp of executable & manifest?
What does "sxstrace" run from an elevated command prompt return?
Could you post your manifest somewhere?
I had the similar problem: the task manager showed Virtualization was enabled for the running apps despite the apps being manifested as highestAvailable. I tried using mt.exe to manifest my files. It worked on some but not on others. That strange behavior made me think there was some persistent cache in Vista that affected UAC info based on an exe's timestamp. The solution was to use the manifest wizard from Resource Tuner.
Not knowing how to use sxstrace, I decided to freshly install Ruby, but the same error persists. Some forums suggested installing Microsoft Visual C++ 2008 Redistributable (x86) but this has no effect on my PC.
When I tries to run Glary Utilities 5.46, the following error message appears.'The application has failed to start because the side by side configuration is incorrect please see the application event log or use the command line sxstrace.exe tool for more detail'
I had posted a question in Microsoft Community and did what the support engineer said, including repairing corrupted files with RestoreHealth and re-installation in compatible mode, but the side by side configuration error still appears. What else can I do?
But when I ran the installer, I realized that Microsoft Visual C++ 2013 Redistributable Package was already installed on my computer and it was asking for repair instead. To be on safe side I just ran the repair wizard once.
The sxstrace.exe tool provided by Microsoft Windows is used for troubleshooting side-by-side configuration issues in Windows. The tool allows users to trace and log the activities related to the side-by-side configuration of applications. This can be helpful in diagnosing problems with application launch and dependencies.
How do we know? Our SpyShelter cybersecurity labs focuses on monitoring different types of Windows PC executables and their behaviors for our popular SpyShelter Antispyware software. Learn more about us, and how our cybersecurity team studies Windows PC executables/processes.
The publisher of an executable is the entity responsible for its distribution and authenticity. Most processes/executables on your PC should be signed. The signature on the executable should have been verified through a third party whose job it is to make sure the entity is who it says it is. Find an unsigned executable? You should consider scanning any completely unsigned .exe on your PC.
Back in early February, several product engineers running Windows 7 on Dell laptops at the large company I work at downloaded and installed Allegro Free Physical Viewer 16.6. We needed to upgrade to 16.6 to be able to open .brd created by our PCB layout group, who recently updated their layout tool. We use Allegro Free Physical Viewer to review PCB layouts prior to ordering them so it is important to be able to open them conveniently.
Since February 12, 2013, no one has been able to run Allegro Free Physical Viewer 16.6. There is an error screen at start up that says "The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail." Because of this error, we have been unable to review files on our own PC. This is going on 5 weeks now.
The Event Viewer has some more precise details of exactly what is missing and there are some notes on running the sxstrace, it looks like you need to kick this off with "Run as Administrator" if UAC is enabled to get sufficiently elevated rights to get the trace. Once identified, you should then be able to download the required run-time from the links provided, or search the Microsoft site for a download containing the missing components.
Description of the issue: When opening a Brave profile pinned to my taskbar, it throws error code: The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail.
How can this issue be reproduced?
Side-by-Side assemblies and manifests
"Side-by-Side", also known as "WinSxS", "SxS" or "Fusion", is an extension to the Windows application model that allows software components to express dependency information. A Side-by-Side "assembly" contains a collection of resources - usually a group of dlls - that are always provided to applications together. These files are described in the assembly "manifest". The Microsoft Visual C++ run-time libraries are an example of an assembly that contains multiple dll files. Both Visual Studio 2005 and 2008 employ Side-by-Side when building a program, including an embedded binary manifest that records the C++ run-time version information. When that program runs, the Side-by-Side manager determines whether the application has a version dependence described in a manifest. (If there is no relevant manifest, the system loads the default version of the assembly).
One big difficulty when troubleshooting OCR issues is that the OCR software always reports this same "general" error message. However, if a Side-by-Side error has caused the OCR to fail, an additional error will be recorded in the Windows Application Event log (Figure 1).
The sxstrace.exe utility
The sxstrace.exe utility (mentioned in the error in the Windows Event Log) can be used to determine the C++ run-time version that a program depends on. The following steps show how to capture a trace for an OCR that is run from the command-line (an excellent way to verify if OCR is working):
The C:\Windows\WinSxS directory
The directory C:\Windows\WinSxS is the Side-by-Side store (also known as the "Windows component store"). It is conceptually the native equivalent of the .NET "Global Assembly Cache" (GAC). This directory contains the dll files and manifests associated with each Side-by-Side assembly. The size of this directory can grow to several GB in size as more applications are installed. As one might imagine however, uninstalling an application does not usually remove files from this directory, as the files could be needed by other applications. Note: Never modify the files in this directory.
Please note that this document is a translation from English, and may have been machine-translated. It is possible that updates have been made to the original version after this document was translated and published. Veritas does not guarantee the accuracy regarding the completeness of the translation. You may also refer to the English Version of this knowledge base article for up-to-date information.
My application has private SxS components that it includes with an Application Manifest. This manifest includes dependentAssembly nodes that refer to COM DLLs in the same folder that have embedded assembly manifests. This all works fine outside of MSIX, but fails with a standard SxS error when packaged (The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail).
Looking at the goings-on in Procmon, I can see that it's the 'csrss.exe' Windows component that is performing the lookup for the dependencies, and since this lives outside the container and is not invoked by my app directly (it's always running in the background), it is looking in the real ProgramFilesX86 folder rather than the one in the VFS that actually contains the DLLs.
Does anyone have any suggestions on what the best way to handle this would be? I've tried the PSF FileRedirectionFixup and DynamicLibraryFixup in PSF, which don't work - I suspect this is because csrss isn't something that is being created from my application, but rather is something running in Windows and handling SxS, and so it isn't being intercepted. The bitness doesn't always match either, so I don't think PSF could intercept it even if it wanted to (my app is x86 due to 3rd part native components, but csrss is x64 on an x64 system).
My only fallback is to munge the VREG such that the components are registered 'globally' rather than privately (which is fine for MSIX as it's scoped to the container), but that means I need to have different Application Manifest files depending on if I'm packaging MSI versus MSIX (I ship both) since the exe will be expecting SxS as-is.
I'm running into this in trying to repackage existing MSIs into MSIX. Can you describe how to tell if the manifest is for registration-free COM? A sample manifest would go a long way to help me understand this.
I've found that registrations directly inside the application manifest (i.e. the manifest in the application executable) seem to work fine. The issue comes about when the manifest is referencing external manifests, even if these are private and in the same folder. To identify this kind of thing, look for something like:
These entries are saying I depend on 'SomeComponent' with the identity specified, and the loader will look first in the GAC, then in the current directory for a DLL/manifest with the same name (this is the bit that's not respecting the VFS in MSIX), then, if not found, in a subdirectory with the same name. Side note: regardless of MSIX, if it finds a DLL with the same name, but without an embedded manifest, before it finds a standalone manifest file, it will fail - this can cause problems where the manifest file is standalone rather than embedded, as the loader stops looking after the failure even if the manifest exists.
b1e95dc632