Mar 17 2023 01:20 AM
Hi,
We've been struggling with environment variables in MSIX packages. The package is created with Microsoft's MSIX Packaging Tool and a script was used under capture. Script is adding environment variables as we can see in the virtual registry after the package has been created. Problem is that session host will not use these environment variable keys. The package works, but there's a SSO feature which doesn't work because of the environment variables. If we add them manually on the session host the SSO feature works fine.
We have tried the PSF tool using the fix there for environment variables, but once we change the AppxManifest.xml to point to PsfLauncher32.exe it gives the following error on the session host:
16.03.23 15:54:29 Error 403 avd-mgmt-7 error 0x80080207: Failure to get staging session for: \\?\Volume{9dc101d8-0130-4a01-xxxx-a81e0088b390}\applications\xxxx__trsqtdqqj719r.
16.03.23 15:54:29 Error 481 avd-mgmt-7 error 0x80080207: Opening the loose file package from location xxxx__trsqtdqqj719r failed.
Any suggestions on what we can try?
Mar 17 2023 01:31 AM
Mar 22 2023 11:18 PM
Can you confirm which version of PSF are you using? And which fixup?
Can you share the MSIX Package with the PSF applied, if possible? You can use the Direct Message of Tech Community to share large files.
Mar 29 2023 12:59 AM
While we are waiting for you to share more info on this, we created our own C++ exe application which uses an env variable, converted to MSIX with the PSF Env Variable fixup. It works perfectly when tested.
We also converted the MSIX package to VHDX via MSIX MGR and then App attached - it worked on AVD as well.
I'll wait for you to share the application to understand the exact issue, but there's no outright bug that we could find.
Mar 31 2023 05:59 AM
Apr 26 2023 11:50 PM - edited Apr 26 2023 11:51 PM
As I mentioned in my previous comment, we had created a test application. The config file was in the format:
{
"applications":
[
{
"id": "ENVVARIABLETEST",
"executable": "VFS/EnvVariableTest.exe"
}
],
"processes":
[
{
"executable": "PsfLauncher.*"
},
{
"executable": ".*",
"fixups":
[
{
"dll": "EnvVarFixup.dll",
"config":
{
"envVars":
[
{
"name": "Test1",
"value": "Value1",
"useregistry": "false"
},
{
"name": "Test2",
"value": "Value2",
"useregistry": "false"
},
{
"name": "Test3",
"value": "Value3",
"useregistry": "false"
}
]
}
}
]
}
]
}
Apr 27 2023 04:53 AM
May 03 2023 02:37 AM
Hi @SajidRavat,
This is a solution suggested by @TIMOTHY MANGAN on a similar issue from another post:
There are two requirements to see the virtualized environment variables:
To determine if the process is in the container you can use an elevated Process Explorer (either inside or outside of the container) and look at the Jobs tab. Alternatively, you can add the "Package Name" and/or "JobID" column in Task Manager.
To see what the app sees, you can create a shortcut to a cmd in the package (to run inside the container), or alternatively you can use the powershell "invoke-CommandInDesktopPackage". In both cases, you use period asterisk method in the json.
You can try this approach to track the environment variables for your scenario.