I've recently installed Visual Studio and Visual Studio Code and two .dll files are left in my C:\ folder. Both are 32 bit DLLs and signed by Microsoft:
C:\appverifUI.dllC:\vfcompat.dllIs there any reason for them being there? Can they be moved or deleted?
Both Visual Studio and Visual Studio Code are the latest releases from the official site.
I assume they are left from the installation process and should have been moved/deleted by the installer, but I'm not sure.
I've found these two files in the root directory of my system disk too. Just after installing WinSDK with Application Verifier checkbox enabled or when Visual Studio is installed.
Searching for these filenames in registry shows that there are links to them.
Searching for these filenames in system disk shows that there are x64 versions of them in Windows\System32 but no x86 versions in Windows\SysWOW64 - the x86 versions are in the root of the drive.
I suggest (I did that) to move the two dll's to Windows\SysWOW64 and edit the registry values to the corresponding new paths. Mine now is
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\0AF818DE4685190F5347FAF54BD80C82\B5EBE9ABF3AC4B1284D69A0B704551A0: REG_SZ "C:\Windows\SysWOW64\appverifUI.dll" andHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\E0C37F311948CF28AE087B694A681271\B5EBE9ABF3AC4B1284D69A0B704551A0: REG_SZ "C:\Windows\SysWOW64\vfcompat.dll".Do not delete them (who knows what it will lead to?), just move them to their x86 "colleagues" and edit registry.
[UPD 2024/06/10] I've made a batch file for this, just copy and paste it to name_of_your_batch.bat:
[UPD 2025/03/07] I've fixed a code to autodetect incorrect key and automatically move files to correct location
@echo off
setlocal
set "COMP=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components"
set "OUT_DIR=C:\Windows\SysWOW64"
goto :Process
:Fix
set "KEY=%COMP%\%~1"
set "OLD_FILE=%~2"
set "NEW_FILE=%~3"
for /f "tokens=1,2,*" %%A in ('reg query "%KEY%" 2^>nul') do (
if "%%B"=="REG_SZ" if /i "%%C"=="%OLD_FILE%" (
set "VAL=%%A"
goto :Found
)
)
echo.Value %OLD_FILE% not found in %KEY%
goto :CheckFile
:Found
reg add "%KEY%" /v "%VAL%" /t REG_SZ /d "%NEW_FILE%" /f && echo.Registry component %KEY%\%VAL% fixed || echo.Failed to update registry
:CheckFile
if exist "%OLD_FILE%" (
move /Y "%OLD_FILE%" "%NEW_FILE%" && echo.%OLD_FILE% successfully moved to %NEW_FILE% || echo.Failed to move %OLD_FILE%
) else (
echo.%OLD_FILE% does not exist, nothing to move
)
goto :EOF
:Process
call :Fix "0AF818DE4685190F5347FAF54BD80C82" "C:\appverifUI.dll" "%OUT_DIR%\appverifUI.dll"
call :Fix "E0C37F311948CF28AE087B694A681271" "C:\vfcompat.dll" "%OUT_DIR%\vfcompat.dll"
endlocal
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With