Forum Discussion
Environment Variable in MSIX Using PSF
Hello Members!
I have been working on and around on the Environment Variables Fixup in the MSIX but unfortunately neither I am getting any error in my config.json file nor I am able to see the variables inside the virtual container.
Please see the below config.json file:
9 Replies
- Edijs_Perkums_MasterPackagerBrass Contributor
In your example the executable is not defined correctly and the slashes are not escaped in the variable value. Here is an example that should work, but remember to add EnvVarFixup64.dll as TIMOTHY_MANGAN mentioned, but keep the json the same - "dll": "EnvVarFixup.dll"
{ "applications": [ { "id": "SevenZFM", "executable": "VFS\\ProgramFilesX64\\7-Zip\\7zFM.exe", "arguments": "", "workingDirectory": "" } ], "processes": [ { "executable": ".*", "fixups": [ { "dll": "EnvVarFixup.dll", "config": { "envVars": [ { "name": "Z", "useregistry": "false", "value": "C:\\temp" } ] } } ] } ] }- Abhi211Copper Contributor
Thank you for your response!
As you suggested I changed my config json accordingly, but I can't find the variable.
See the below json file.
- Edijs_Perkums_MasterPackagerBrass Contributor
Abhi211 How are you checking for the variable? You will not see it in process explorer or CMD. The only way I was able to actually verify that the fixup works was by writing my own C# console program that displays the value of the environment variable.
- MadissonCopper ContributorEnsure the correctness of your config.json file for MSIX environment variable fixup by correcting the syntax in the "envVars" section. Each environment variable should be enclosed in curly braces and the path in the "value" field should use double backslashes. For example: json "config": { "envVars": [ { "name": "Z", "value": "C:\\temp", "useregistry": "false" } ] } Make sure the "EnvVarFixup32.dll" is correctly placed in the package and is compatible with your system architecture. After making these adjustments, rebuild and repackage your MSIX application. This should enable the specified environment variable within the virtual container.
Abhi211 You didn't specify the source of the PSF being used. Sometimes that matters, but probably not in this case. Here is what is obvious from the post:
In the json, the name of the fixup file should not include the bitness (architecture). It should just be listed as "EnvVarFixup.dll". The PsfRuntime will look at the bitness of the application (x64 in your example) and then try to load a file with that added in (EnvVarFixup64.dll). Since you made the json by hand, I'm guessing that you may have put in the files by hand, so make sure that version of the dll is in the package (it never hurts to put both bitnesses in when you don't know the app).
- Abhi211Copper Contributor
I am using your version of psf from here "https://github.com/TimMangan/MSIX-PackageSupportFramework/tree/develop/ZipRelease-v2023.08.13"...
About the bitness I tried without giving it, but it didn't work. Do you think I am missing on something else?
These are the files I have included.
Even the manifest seems fine to me..