Forum Discussion
JDHIntercede
Jun 24, 2022Brass Contributor
Private SxS Components (registration-free COM)
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 as...
Jun 24, 2022
I can confirm that applications with private manifests under MSIX seem to fall victim to the error message you mention (but not always). There is nothing in the PSF to help with this issue today, even after devoting a lot of time fruitlessly debugging these situations.
My normal procmon trace excludes the csrss process, so I hadn't noticed it's involvement. Perhaps that will prove important.
My normal procmon trace excludes the csrss process, so I hadn't noticed it's involvement. Perhaps that will prove important.
- JDHIntercedeJun 27, 2022Brass ContributorIf it helps, this is only an issue for my .NET COM components as the SxS stuff is pretty strict about the presence of assemblyIdentity in the manifest; the native components are perfectly happy being registered directly in the application manifest rather than via dependentAssembly with embedded assembly manifests, whereas the .NET stuff requires a manifest per component since it requires assemblyIdentity, which can only appear once in a manifest.
I guess I will have to just update the CI pipeline to use different manifests for MSI versus MSIX, and register the offending components in the VREG for the latter (I've quickly proven this out by hand and it works fine for my case). Not ideal, but it works.- Jun 27, 2022
JDHIntercede Sounds like the right approach.
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.
- Jun 29, 2022
JDHIntercede Regarding csrss...
This is a session process. It will only attempt to read an external manifest file from a folder once during the life of the user session. I am seeing it successfully read the manifest file from the MSIX package during that first run. Subsequent launches don't look for the file again.
This doesn't explain the problem or eliminate the problem. I just want to make sure you didn't jump to incorrect conclusions.