Forum Discussion

Abhi211's avatar
Abhi211
Copper Contributor
Jan 02, 2024

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:

 

{
  "applications": [
    {
      "id": "SevenZFM",
      "executable": "VFS\\ProgramFilesX64\\7-Zip\\7zFM.exe",
      "arguments": "",
      "workingDirectory": ""
    }
  ],
  "processes": [
    {
      "executable": "PSFSample",
      "fixups": [
        {
          "dll": "EnvVarFixup32.dll",
          "config": {
            "envVars": [
"name" : "Z",
            "value" : "C:\temp",
            "useregistry": "false"
]
          }
        }
      ]
    }
  ]
}
 
 
I would be very grateful if someone could help me out in this. TIMOTHY_MANGAN 
 
Thanks in Advance

9 Replies

  • Abhi211 

    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"
                  }
                ]
              }
            }
          ]
        }
      ]
    }

     

    • Abhi211's avatar
      Abhi211
      Copper Contributor

      Edijs_Perkums_MasterPackager 

      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_MasterPackager's avatar
        Edijs_Perkums_MasterPackager
        Brass 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.

  • Madisson's avatar
    Madisson
    Copper Contributor
    Ensure 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).

    • Abhi211's avatar
      Abhi211
      Copper Contributor

      TIMOTHY_MANGAN 

      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..

       

Resources