Мы столкнулись с той же проблемой, когда пытались завершить проект, в котором была ссылка на этот COM-объект.
На машине с Windows 7 x64 и VS 2010 он скомпилирован нормально.
На машине с Win2003 x64 и VS 2010 (тот же проект в нем) мы получили ошибку компиляции "Не удалось найти тип или имя пространства имен 'INetFwMgr'".
Первое, что я сделал - я установил вывод сборки как "подробный". Я заметил, что это русская команда
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\TlbImp.exe" C:\WINDOWS\SysWOW64\hnetcfg.dll /namespace:NetFwTypeLib /out:"obj\Debug WF\Interop.NetFwTypeLib.dll" /sysarray /transform:DispRet /reference:D:\Projects\Framework\Projects\FrameworkBase\Dlls\KellermanSoftware.NET-Email-Validation.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll /reference:"C:\Program Files (x86)\TestDriven.NET 2.0\NUnit\2.4\nunit.framework.dll" /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.configuration.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.DirectoryServices.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Management.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Runtime.Remoting.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Runtime.Serialization.Formatters.Soap.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.ServiceProcess.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Web.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Web.Services.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll /reference:D:\Projects\Framework\Projects\Common\ZipLib\bin\Debug\ZipLib.dll /reference:C:\WINDOWS\assembly\GAC\stdole\7.0.3300.0__b03f5f7f11d50a3a\stdole.dll /keyfile:StrongKey.snk
и результат этой команды в порядке - он создает файл
"D:\Projects\Framework\Projects\FrameworkBase\obj\Debug WF\Interop.NetFwTypeLib.dll"
Этот же файл создается на компьютере с Windows 7. Однако есть одно отличие:
размеры файлов Interop.NetFwTypeLib.dll
очень разные.
Мне кажется, что файлы hnetcfg.dll на компьютере с Windows 7 и Windows 2003 x64 слишком сильно отличаются друг от друга, и, к сожалению, таблица импорта в файле Windows 2003 повреждена.
Я понятия не имею, исправила ли это Microsoft, и если в каком-то обновлении Windows они отправят обычный файл hnetcfg.dll с обычной таблицей импорта. Мне плевать на них.
Я сделал следующее: я получил обычный файл Interop.NetFwTypeLib.dll в Windows 7 и включил его в отдельную папку проекта в систему управления исходным кодом, и поместил ссылку на этот файл (вместо ссылки на COM). И проблема решена.