.Net 3.5 和 4.0 程序集 (NATUPnPLib) 的奇怪兼容性问题

发布于 2024-09-01 08:26:51 字数 534 浏览 7 评论 0 原文

我在让 NATUPnP 1.0 类型库与 Visual Studio 2010 中的 Framework 3.5 一起使用时遇到问题。如果我使用 .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,但除非将其更改为 .Net 4.0,否则我无法在 Visual Studio 2010 中编译它。
我没有尝试过,但我敢打赌在 Visual Studio 2008 中不会有任何问题。

I'm having trouble getting NATUPnP 1.0 Type Library to work with Framework 3.5 in Visual Studio 2010. If I use .Net 4.0, it works just fine, but with .Net 3.5, NATUPNPLib's namespace looks excactly like NETCONLib's.

For example this Port Forwarding Management Application sample from this site: http://pietschsoft.com/post/2009/02/05/NET-Framework-Communicate-through-NAT-Router-via-UPnP.aspx

..is using .Net 3.5, but I can't get it to compile in Visual Studio 2010 unless I change it to .Net 4.0.
I haven't tried, but I bet in Visual Studio 2008 there would be no problems.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

沉默的熊 2024-09-08 08:26:52

我部分重现。我也获得了两个不同的互操作库,但我在 VS2008 和 VS2010 上都这样做。仔细查看“添加引用 + COM”选项卡的“路径”列。 它们都引用相同的 DLL,c:\windows\system32\hnetcfg.dll"

好吧,从同一个 DLL 生成相同的互操作库是有道理的。我猜有人会这样做微软认为其中一个类型库名称很糟糕,并更改了注册程序,以新名称注册它,并以旧名称注册它,这样就不会破坏向后兼容性,不确定是哪一个。但“CON”是那些神秘的缩写词之一(?),它在 Microsoft 类型库名称中不断出现,“UPNP”可以更好地确定工作,我想

如果您运行 64 位,可能会有所不同 。 一定选择 VS2010 显示的名称,否则,将同一类型库引用到同一个 COM 服务器是没有意义的。

I partly repro. I too get two distinct interop libraries but I do so on both VS2008 and VS2010. Take a close look at the Add Reference + COM tab, Path column. Both of them refer to the same DLL, c:\windows\system32\hnetcfg.dll".

Well, it makes sense that the same interop library gets generated from the same DLL. I would guess that somebody at Microsoft decided that one of the type library names was crummy and changed the registration procedure to register it under a new name. And register it under the old name so not to break backward compatibility. Not sure which, but "CON" is one of those mysterious acronyms (?) that keeps popping up over and over again on Microsoft type library names. "UPNP" nails the job down better, I guess.

There might be a difference if you run a 64-bit operating system. Do pick the name that VS2010 shows. Otherwise, there's no point in referencing the same type library to the same COM server twice. One will get the job done.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文