These two files appeared in the root of my C: drive in Windows 11. Does anybody know what created them? What is their purpose and why are they in root?
appverifUI.dllvfcompat.dll
These two files appeared in the root of my C: drive in Windows 11. Does anybody know what created them? What is their purpose and why are they in root?
appverifUI.dllvfcompat.dllDoes anybody know what created them?
These files appeared for me after running the Windows 11 SDK 10.0.22621.1778 installer.
What is their purpose
From my research in to this, it appears that appverifUI.dll (UI Definition) and vfcompat.dll (required to run the Compatibility tests) are needed by Application Verifier (appver) from Microsoft.
The test can be enabled through the UI (shown above) or through the command line using:
appverif -enable HighVersionLie -for xcopy.exe
Replace xcopy.exe with the executable you need to test.
When the application is launched next, these tests are run. I verified errors in the UI and running Compatibility tests when they are removed. However, removing the DLLs in the C:\ root folder did not affect the operation of C:\system32\appverifUI.exe.
Duplicate DLLs found in C:\windows\system32
Under C:\windows\system32 two DLLs with the same name exist, and this lead me to compare the differences under a DLL viewer tool. I choose JetBrains dotPeek (free), and with a little help from this answer, I noticed these values under the Machine segment of the File (COFF) header:
It becomes clear that one is 32-bit (0x014C = i386) and the other is 64-bit (0x8664 = AMD64) versions of the DLL required by appverif.exe. Surprisingly, I also found appverif.exe in C:\SysWOW64. Then, I found this in the Application Verifier documentation:
Using Application Verifier with WOW64
You can use either the 32-bit or the 64-bit version of Application Verifier to verify a 32-bit application running under WOW64.
Ironically, it looks like the 32-bit appverif.exe is located in C:\Windows\SysWOW64 (also supported here).
Following through on my hunch, I tried to run C:\SysWOW64\appverif.exe and it ran only through command line. However, after moving C:\appverifUI.dll and C:\vfcompat.dll in to C:\Windows\SysWOW64, I was able to launch the UI and run Compatibility tests.
why are they in root
At this I can only speculate - I would guess they are some how linked together elsewhere (i.e. by references in the SDK).
However, one thing is clear, if you need to use the 32-bit appverif UI and run the corresponding Compatibility tests, you should not delete those files. But, I can't see why you would need the 32-bit appverif since the 64-bit version works too.
I have the same two files in C:/, and they are both 32-bit dlls, and I checked the version of C:/vfcompat.dll (10.0.22621.xxx), C:/Windows/SysWOW64/vfcompat.dll (10.0.22000.xxx) and C:/Windows/SysWOW64/appverif.exe (10.0.22621.xxx).
So I moved the two files to C:/Windows/SysWOW64/.