【发布时间】:2011-01-14 16:27:41
【问题描述】:
我已经实现了一个小的 PowerShell 模块,它带来了一个自定义类型。我将.psm1 文件中的类型定义为C# 类,并使用Add-Type 添加它。现在,当我添加模块并再次删除它时,类型仍然存在,可能 不太正确(例如,它会阻止重新添加模块)。 Remove-Module 的文档指出,模块加载的程序集中定义的类型也会被卸载。但是我的模块没有引入程序集,只是源代码形式的一个很小的单一类型。
我可以将类型放入它自己的 DLL 中并将其标记为要加载到模块清单中的程序集,但我喜欢当前所有源代码的可见性。使用模块分发 DLL 可能会让人怀疑它为什么需要可执行文件。
在卸载模块时,我可以用某种方式删除类型吗?或者我应该忽略Add-Type 的潜在错误,以便至少能够在从会话中删除后重新添加模块?我宁愿避免在其中放置一个 DLL(对于那个小模块来说,无论如何可能是矫枉过正)。
【问题讨论】:
标签: powershell module types