0

我们有一个旧的 PowerShell PsSnapin (c#)。我想避免不得不使用InstallUtil. 以下导入了一个模块,其中导出了 PSSnapin cmdlet:

import-module .\MySnapin.dll

但是,当我运行模块 cmdlet 时,它们由于无法找到引用的程序集(特别是企业库 dll)而失败。

有没有一种巧妙的方法可以让这个工作?

(PsSnapin dll 和所有引用的程序集都在同一个构建目录中,当我使用 installutil 时,依赖关系都正确解析)

4

1 回答 1

0

管理单元与模块有点不同。您首先需要使用InstallUtil.exe注册管理单元:

PS> $InstallUtil = Join-Path $([System.Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()) "InstallUtil.exe"
PS> & $InstallUtil "C:\Path\to\MySnapin.dll"

注册管理单元程序集后,您可以使用以下命令将其加载到您的 powershell 会话中Add-PSSnapin

PS> Add-PSSnapIn MySnapin
于 2016-01-07T16:10:51.157 回答