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。