wordpress   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了.net – 如何轻松更新interop dll?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

假设我们在VS 2005(VB .Net)中有一个.NET项目. 该项目使用非GUI COM对象.当我添加对该对象的引用时,VS创建interop dll.但是我在另一个项目中向COM对象添加了新方法.如何在没有显式调用tlbimp的情况下更新interop dll?我希望Intellisense显示此COM对象中的新方法列表. 如果我理解你正确你有一个COM服务器(显然是进程中/ DLL),它托
假设我们在VS 2005(VB .Net)中有一个.NET项目.
该项目使用非GUI COM对象.当我添加对该对象的引用时,VS创建interop dll.但是我在另一个项目中向COM对象添加了新方法.如何在没有显式调用tlbimp的情况下更新interop dll?我希望Intellisense显示此COM对象中的新方法列表.
@H_450_21@解决方法
如果我理解你正确你有一个COM服务器(显然是进程中/ DLL),它托管您正在更新的对象.并且当您尚未编译COM服务器时,您希望通过客户端项目中的IntelliSense提供这些更新,对吗?

如果是这样:这是不可能的.让我来说明原因:

IntelliSense仅为项目的引用构建文档缓存.引用COM服务器与引用.NET项目不同.对于.NET项目,它可以直接从代码模型构建文档缓存.但是COM服务器通常用一种语言描述,编译器不知道! tlbimp生成一个.NET包装器,为您调用COM服务器. IntelliSense能够理解包装器(互操作DLL,它只不过是一个自动生成的.NET DLL),而不是它实际上做的事情.所以你总是需要保持包装更新.

无论何时对COM服务器进行更改,都需要注册它(使用regsvr32),以便更改对客户端“可见”(在本例中为tlbimp).然后,您必须重新添加对.NET项目的引用,这将导致tlbimp生成一个新的互操作DLL,IntelliSense可以理解.这是在.NET环境下与COM的交易……

但是,您可以尝试进一步自动化构建过程:

>在您的服务器项目中,在构建后事件中调用tlbimp,然后创建一个Primary Interop Assembly.
>自动将PIA部署到GAC.
>在您的客户端项目(.NET项目)中,引用PIA.
>每次构建新的服务器项目时,请刷新客户端项目中的IntelliSense缓存(“编辑” – >“IntelliSense” – >“刷新本地缓存”或Ctrl Shift R).

希望这可以帮助!

大佬总结

以上是大佬教程为你收集整理的.net – 如何轻松更新interop dll?全部内容,希望文章能够帮你解决.net – 如何轻松更新interop dll?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。