2015-02-11 30 views
0

我将PowerShell管理单元(它工作得很好)转换为PowerShell模块。在Powershell 3中导入二进制模块,dll参考位于不同的文件夹

我已经为DLL具有相同的名称添加DLL的输出到一个文件夹,并添加模块路径$env:PSModulePath

进口似乎失败,因为管理单元有一些其他DLL的一些引用(位于bin\文件夹)

我也不想复制所有引用的dll到模块文件夹,因为它们已经在bin文件夹中。

有没有办法指出引用的dll位于PowerShell中的文件夹?也许,表示该文件夹就像是个别dll的完成:

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

+0

请问为什么您不想将引用的dll复制到模块的文件夹?我相信这是一个相当标准的做法。 – blachniet 2015-02-11 12:36:13

+0

@blachniet:原因是因为我已经将dll编译到** bin \ **文件夹中。我只想从模块文件夹中引用它们。考虑一下我有20个模块的情况,然后我将所有的dll复制到每个模块中。 – 2015-02-11 12:49:55

回答

0

我不知道有什么方法可以从另一个文件夹加载的DLL引用。如果你只想在目标文件夹中有一个dll,你可以使用ILMergeavailable via NuGet)将主输出程序集和引用程序集合并成一个dll。