Powershell v2 - 将装配作为模块的一部分加载的正确方法

时间:2014-09-10 15:03:33

标签: module powershell-v2.0 assemblies

我正在制作一个Powershell(v2.0)脚本。

它做的第一件事就是加载一个Module(runMySQLQuery.psm1),它包含一个连接MySQL数据库的函数(以及其他位)。

Import-Module runMySQLQuery.psm1

但是,这需要加载程序集MySQL.Data.DLL才能使其正常工作。

如果我放行:

[void][system.reflection.Assembly]::LoadFrom("C:\PowerShell\modules\runMySQLQuery\MySql.Data.dll")

在我的脚本顶部(与Import-Module条目分开),然后整个工作正常。

但是我希望能够在模块的同时加载这个程序集,这样我就不必担心每次使用这个模块时都忘记包含程序集。

我尝试将它放在.psm1文件的顶部,但这不起作用。

然后我将它添加到我的清单文件中: RequiredAssemblies = @("C:\PowerShell\modules\runMySQLQuery\MySql.Data.dll")

这也行不通。

我在这里遗漏了什么,有没有一种方法可以将程序集作为模块的一部分包含在内?

n.b。我没有正确加载时得到的错误是:

You cannot call a method on a null-valued expression

1 个答案:

答案 0 :(得分:1)

您可以尝试在模块的开头指定一个变量:

$dumy = [system.reflection.Assembly]::LoadFrom("C:\PowerShell\modules\runMySQLQuery\MySql.Data.dll")