【pwsh】Add-Type后如何移除?

问题

Add-Type支持将C#、VB、JavaScript、dll等其他编程语言添加为新的 .NET 类型1,其扩展性极高。

但需要注意到,Add-Type的类型是无法移除的,且同一会话窗口下一旦加载过了,重复运行只会抛出该 .NET 类型已存在的错误。

解决方案

参考StackOverflow提问2x0n 的回答,已加载的类型只有在会话关闭后才会注销。Charlie KilianStart-Automating 巧妙使用Job类型来启动一个额外的线程,并使用新的类型,实现运行结束后自动注销。代码如下:

Start-Job -ScriptBlock {
    Add-Type -path 'my.dll'
    $myObj = New-Object My.MyTestClassName

    $result = $myObj.TestMethod
    $result
} | Receive-Job -Wait -AutoRemoveJob

参考


  1. Powershell commands 详解之 Add-Type ↩︎

  2. Can you remove an Add-ed Type in PowerShell again? ↩︎

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值