Странная проблема совместимости со сборками .Net 3.5 и 4.0 (NATUPnPLib) - PullRequest
6 голосов
/ 16 мая 2010

У меня проблемы с получением библиотеки типов NATUPnP 1.0 для работы с Framework 3.5 в Visual Studio 2010. Если я использую .Net 4.0, она работает нормально, но с .Net 3.5 пространство имен NATUPNPLib выглядит точно как у NETCONLib.

Например, этот пример приложения для управления переадресацией портов с этого сайта: http://pietschsoft.com/post/2009/02/05/NET-Framework-Communicate-through-NAT-Router-via-UPnP.aspx

.. использует .Net 3.5, но я не могу заставить его скомпилироваться в Visual Studio 2010, если я не изменю его на .Net 4.0.
Я не пробовал, но держу пари, что в Visual Studio 2008 проблем не будет.

1 Ответ

5 голосов
/ 16 мая 2010

Я частично репро. Я также получаю две разные библиотеки взаимодействия, но я делаю это как на VS2008, так и на VS2010. Внимательно посмотрите на вкладку «Добавить ссылку + COM» в столбце «Путь». Они оба ссылаются на одну и ту же DLL, c: \ windows \ system32 \ hnetcfg.dll ".

Хорошо, имеет смысл, что одна и та же библиотека взаимодействия генерируется из одной и той же DLL. Я предполагаю, что кто-то в Microsoft решил, что одно из названий библиотек типов было грубым, и изменил процедуру регистрации, чтобы зарегистрировать его под новым именем. и зарегистрируйте его под старым именем, чтобы не нарушать обратную совместимость. Не уверен, какой именно, но «CON» - это одна из тех загадочных аббревиатур (?), Которая снова и снова появляется в именах библиотек типов Microsoft. Наверное, "UPNP" лучше справляется с работой.

Может быть разница, если вы используете 64-битную операционную систему. Do выберите имя, которое показывает VS2010. В противном случае нет смысла ссылаться на одну и ту же библиотеку типов на один и тот же COM-сервер дважды. Один выполнит работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...