2016-01-07 60 views
0

我們有一個傳統的PowerShell PsSnapin(c#)。我想避免使用InstallUtil。下面的進口與出口的PSSnapin cmdlet的模塊:使用帶PowerShell的導入模塊PSSnapin Dll

import-module .\MySnapin.dll 

然而,當我運行模塊的cmdlet,他們會由於未能找到引用的組件(具體而言,企業庫dll文件)。

有沒有一種簡單的方法來實現這個功能?

(該PsSnapin DLL和所有引用的組件是在同一個build目錄,當我使用installutil,依賴都是正確解析)

回答

0

管理單元是從模塊的有點不同。首先,您需要註冊的管理單元,使用InstallUtil.exe:確實

PS> Add-PSSnapIn MySnapin 
+0

- 這就是我們通常做的:

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

註冊管理單元組裝後,可以將其與Add-PSSnapin加載到PowerShell會話,但我明確地試圖避免InstallUtil。例如。所以我可以加載相同的管理單元的兩個版本等。 – Rob

+0

啊,我明白了。我不知道這是否可行,但是:重命名一個版本,重新編譯,註冊兩個版本,或者使用'Add/Remove-PSSnapIn'在它們之間切換? –