Импорт двоичных модулей в Powershell 3 со ссылками на dll, расположенными в другой папке

Я конвертирую оснастку powershell (которая работала очень хорошо) в модуль powershell.

Я добавил выходную dll в папку с тем же именем, что и dll, и добавил путь к модулю в $env:PSModulePath

Импорт, похоже, завершился неудачно, потому что в Snapin были ссылки на некоторые другие dll (находящиеся в папке bin\)

Я также не хочу копировать все указанные dll в папку модулей, потому что они уже находятся в папке bin.

Есть ли способ указать папку, в которой находятся упомянутые dll в powershell? Возможно, чтобы указать папку, как это делается для отдельных dll:

[reflection.assembly]::loadfrom(full name of referenced dll)


person Pinte Dani    schedule 11.02.2015    source источник
comment
Могу я спросить, почему вы не хотите копировать указанные dll в папку модуля? Я считаю, что это довольно стандартная практика.   -  person blachniet    schedule 11.02.2015
comment
@blachniet: Причина в том, что у меня уже есть dll, скомпилированная в папку *bin*. Я хочу ссылаться на них только из папки модулей. Рассмотрим случай, когда у меня есть 20 модулей, и тогда я буду копировать все dll в каждый модуль отдельно...   -  person Pinte Dani    schedule 11.02.2015


Ответы (1)


Я не знаю, как загрузить указанные библиотеки DLL из другой папки. Если вам нужна только одна dll в папке назначения, вы можете использовать ILMerge (доступно через NuGet), чтобы объединить основную выходную сборку и сборки, на которые имеются ссылки, в одну dll.

person blachniet    schedule 11.02.2015