На 64-битной системе, как видно с помощью 64-битного приложения:
- System32: содержит 64-битные системные файлы
- syswow64: содержит 32 -разр системные файлы
на 64-битной системе, как видно на 32-битное приложение:
- System32: как правило, перенаправляется на syswow64, поэтому доступ к 32-битным системным файлам
- Sysnative: перенаправлено к реальным System32; доступ 64-битных файлов
На 64-битной системе, с перенаправлением файловой системы отключена (см IntallScript-х WOW64FSREDIRECTION
или ОС Windows на Wow64DisableWow64FsRedirection
), если вам случится иметь путь к папке System32, она будет иметь доступ к 64-разрядные файлы ,
Реглас в этом месте отсутствует; вместо этого 32-битная сборка находится в Windows\Microsoft.NET\Framework\<version>
, а 64-битная сборка находится в Windows\Microsoft.NET\Framework64\<version>
. Здесь нет странных имен папок, но это не системная папка.
Примечание: Для регистрации файла необходима правильная битность и правильное применение. Кроме того, если вы создаете пакет установщика Windows (например, базовый проект MSI), вы не должны вызывать такие инструменты во время установки; вместо этого вы должны использовать инструменты построения времени, такие как COM Extraction для собственных DLL и COM Interop, для управляемых сборок, чтобы включить их саморегистрацию в данные MSI: отметьте 64-битные настройки компонента правильно, и InstallShield, как предполагается, справится с остальными.
Syswow64 regsvr32 должен работать. Возможно, вам придется работать как администратор. Обычно я использую командную строку VS Developer. [здесь] (http://stackoverflow.com/questions/1163503/what-is-difference-bw-regasm-exe-and-regsvr32-how-to-generate-a-tlb-file-usi) является ссылкой на различия между regsvr32 и regasm – alykins
Но я видел в одной из ссылок, что Syswow64 предназначен для регистрации 32-разрядных DLL. Соглашение об именах испорчено. –
Вы попробовали? – alykins