加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

.net – 将interop dll放入GAC?

发布时间:2020-12-14 02:19:06 所属栏目:Windows 来源:网络整理
导读:这可能是一个愚蠢的问题,但我需要澄清一些.我对.NET有点新,并创建了一个必须引用现有COM DLL的EXE.在这样做时,Visual Studio 2010自动创建了一个“Interop”DLL,它需要/使用它来处理旧的COM DLL. 我已经部署了我的项目并将它包含在这个Interop DLL中(在同一
这可能是一个愚蠢的问题,但我需要澄清一些.我对.NET有点新,并创建了一个必须引用现有COM DLL的EXE.在这样做时,Visual Studio 2010自动创建了一个“Interop”DLL,它需要/使用它来处理旧的COM DLL.

我已经部署了我的项目并将它包含在这个Interop DLL中(在同一个文件夹中),一切正常.但是,我有其他应用程序需要使用相同的传统COM DLL.可以在每个应用程序中以相同的方式引用它并继续在每个应用程序中部署“Interop”DLL吗?不幸的是,所有这些小应用程序都在同一个文件夹中,并且每个都使用相同的Interop DLL(因此如果它被另一个应用程序使用,它就已存在.)我被迫将它们放在同一个文件夹中,因为这些应用程序正在被称为自定义父应用程序的一种方式.因此,当它想要运行“自定义”应用程序时,它只查看它的本地文件夹.我只是担心如果一个EXE被删除并且他们取出Interop DLL,那么仍??然依赖它的其他人将会失败.

所以,我想知道将Interop DLL放入GAC是否可能或者是个好主意?我继续将Interop DLL安装到GAC中,然后从我运行EXE的文件夹中删除了Interop DLL,但它无法正常工作.我收到一条错误消息“无法加载文件或程序集”.我坚持让这个工作.

>我是否需要以不同方式引用项目中的Interop DLL,以便它现在来自GAC?
要么
>我是否需要在我的.NET代码中添加一些内容,例如Assembly.Load以使其正常工作?
>我是否需要使用TLBIMP自己创建Interop DLL?

任何帮助将不胜感激!

最好的祝福,

纳尔逊

解决方法

这被称为PIA,“主要互操作组件”.您可以使用Tlbimp.exe,HowTo is here的/ primary选项生成它们.

在某些情况下,您需要有一个PIA,当您的某个程序集将一个类型从导入库暴露给另一个使用加载的互操作程序库的单独副本运行的程序集时,需要PIA.显然,这不是你的情况.它也是渡渡鸟的方式,VS2010支持“嵌入互操作类型”功能,这是一个非常理想的功能,重要的库完全消失.

在你的情况下,我不会打扰.把它放入GAC没有任何好处,只有头痛.否则不知道为什么你遇到麻烦,使用Fuslogvw.exe来解决程序集解决问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读