我们有一个传统的PowerShell PsSnapin(c#)。我想避免使用InstallUtil
。以下导入导出PSSnapin cmdlet的模块:
import-module .\MySnapin.dll
但是,当我运行模块cmdlet时,由于无法找到引用的程序集(特别是Enterprise Library dll),它们会失败。
有没有一种巧妙的方法让这个工作?
(PsSnapin dll和所有引用的程序集都在同一个构建目录中,当我使用installutil时,依赖项都被正确解析)
答案 0 :(得分:0)
管理单元与模块略有不同。您首先需要使用InstallUtil.exe注册管理单元:
PS> $InstallUtil = Join-Path $([System.Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()) "InstallUtil.exe"
PS> & $InstallUtil "C:\Path\to\MySnapin.dll"
注册snapin程序集后,您可以使用Add-PSSnapin
将其加载到PowerShell会话中:
PS> Add-PSSnapIn MySnapin