我正在研究一个项目,其设置使用Microsoft知识库文章KB317540中介绍的API来安装和卸载程序集到GAC中。知识库文章中指出:使用未记录的本地代码API将项目安装到GAC中
摘要
本机代码应用 程序编程接口(API),从而 让你与全球 程序集缓存(GAC)互动不 在.NET Framework 软件记录开发工具包(SDK) 文档。更多信息
注意:不要在你的应用程序中使用 这些API 执行程序集绑定或测试 组件或其他 运行时间,开发或设计时 操作的存在。只有管理工具 和安装程序必须使用这些 API。如果您使用GAC,则此 会将您的应用程序直接暴露给 程序集绑定的易碎性,或者可能是 导致您的应用程序在未来的 版本的.NET Framework上错误地运行 。GAC存储在 计算机上的所有应用程序之间共享的 程序集。实际存储位置 和GAC的结构不是 记录,并且可能会更改 未来版本的.NET Framework 和Microsoft Windows操作 系统。
唯一支持的方法来访问 组件在GAC是通过被该 文章中记录了 的API。
大多数应用程序不必使用 这些API,因为程序集 绑定是由公共语言运行库自动执行的 。只有 自定义安装程序或管理 工具必须使用这些API。微软 Windows安装程序具有本地支持 用于将程序集安装到GAC。
有关程序集 和GAC的更多信息,请参见.NET Framework SDK。
在下面的 方案中使用GAC API:当您将一个 程序集安装到GAC时。当您从GAC中删除 程序集时。当您从GAC中导出程序集时,您可以从 中导出程序集。在 中列举了GAC中可用的组件 。注意: 必须先调用CoInitialize(Ex),然后才能使用 规范中描述的任何函数和 接口。
这种技术的优缺点是什么?这些API可以安全使用吗?任何人在那里使用它们?如果是这样,为什么?
如果这取决于我,那就是我所要做的,但我的团队中的其他人似乎认为Windows Installer“太难”了,他们想要使用Inno Setup。这真的对我来说很不好,但我目前的数量超过了: – 2009-09-16 01:27:35
@Tim:我发现这个链接可能有所帮助:https://msmvps.com/blogs/carlosq/archive/2009/06/09/net-support -in-下一版本的-innosetup的安装程序,方便换基于COM-附加ins.aspx – TrueWill 2009-09-16 02:04:29