欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PowerShell中使用.NET将程序集加入全局程序集缓存

程序员文章站 2022-06-17 22:40:55
通常情况下,将程序集(assembly)加入全局程序集缓存(gac,global assembly cache),可以使用gacutil工具。只要使用/i参数,就可以把指定...

通常情况下,将程序集(assembly)加入全局程序集缓存(gac,global assembly cache),可以使用gacutil工具。只要使用/i参数,就可以把指定路径的程序集添加进gac了。

不过由于gacutil并不是.net framework的一部分,而是和windows sdk一起发布的,这就导致了机器中安装了.net,却可能找不到gacutil的情况。

在powershell中,我们可以直接使用.net的类库来搞定这件事,而不需要通过gacutil。具体代码如下:

[reflection.assembly]::loadwithpartialname("system.enterpriseservices") > $null
[system.enterpriseservices.internal.publish] $publish =
 new-object system.enterpriseservices.internal.publish
$publish.gacinstall("<dll的完整路径>")

另外,system.enterpriseservices.internal.publish还提供了类似regasm的功能,具体可以查询msdn。