FileVersionInfo.GetVersionInfo не учитывает перенаправление файловой системы.C#

Место общения программистов C#
Anonymous
FileVersionInfo.GetVersionInfo не учитывает перенаправление файловой системы.

Сообщение Anonymous »

У меня есть приложение C#.Net x86, работающее в ОС x64 (в данном случае Windows 2008 R2). Я пытаюсь проверить версию файла my.DLL в System32, но он продолжает получать версию my.DLL в SysWow64, хотя я отключаю перенаправление файловой системы.

Вот урезанный код:

Код: Выделить всё

[DllImport("kernel32.dll", SetLastError = true)]
public static extern bool Wow64DisableWow64FsRedirection(ref IntPtr ptr);
[DllImport("kernel32.dll", SetLastError = true)]
public static extern bool Wow64RevertWow64FsRedirection(IntPtr ptr);
....
string myDLL = "c:\\windows\\system32\\my.dll";
IntPtr ptr = new IntPtr();
Wow64DisableWow64FsRedirection(ref ptr);
var ver = new Version(FileVersionInfo.GetVersionInfo(myDLL).FileVersion);
Debug.WriteLine(String.Format("file={0} ver={1}", myDLL, ver));
Wow64RevertWow64FsRedirection(ptr);
В SysWow64 всегда отображается версия my.dll. Есть идеи, что я делаю не так?

Вернуться в «C#»