Это известная проблема в SP1 для Win7 , которая будет исправлена в SP2.
Способ решения проблемы в SP1 - скопировать старый файл ADO typelib из Win7 RTMв C:\Program Files (x86)\Common Files\System\ado
и зарегистрируйте его там.
Регистрация этой старой библиотеки типов ADO не является тривиальной задачей, как показали многочисленные темы форума.Вот пакетный файл, который мы используем в нашем магазине для исправления проблемы с типом библиотеки ADO:
@echo off
set regtlib="%windir%\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe"
set subinacl="%~dp0subinacl.exe"
set target_dir=%CommonProgramFiles%\System\ado
if not "%CommonProgramFiles(x86)%"=="" set target_dir=%CommonProgramFiles(x86)%\System\ado
copy "%~dp0msado28_old.tlb" "%target_dir%\msado28_old.tlb" > nul
%subinacl% /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{2A75196C-D9EB-4129-B803-931327F72D5C} /setowner=Administrators > nul
%subinacl% /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{2A75196C-D9EB-4129-B803-931327F72D5C} /grant=Administrators=F > nul
%subinacl% /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\TypeLib\{2A75196C-D9EB-4129-B803-931327F72D5C} /setowner=Administrators > nul
%subinacl% /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\TypeLib\{2A75196C-D9EB-4129-B803-931327F72D5C} /grant=Administrators=F > nul
%regtlib% -u "%target_dir%\msado28.tlb"
%regtlib% "%target_dir%\msado28_old.tlb"
Вам понадобятся msado28_old.tlb
и subinacl.exe
, размещенные вта же папка, что и у файла install.bat
и настройки .NET Framework 4.0 для утилиты regtlibv12.exe
.
Теперь вы можете перекомпилировать свои проекты, ссылающиеся на ADO, в окне Win7 без проблем совместимости с предыдущими версиями Windows.