IGGt
IGGt

Reputation: 2779

Powershell v2 - The correct way to load an assembly as part of a module

I have a Powershell (v2.0) script that I am working on.

One of the first things it does is loads a Module (runMySQLQuery.psm1) which includes (amongst other bits) a function to connect to a MySQL Database.

Import-Module runMySQLQuery.psm1

However, this requires that an assembly MySQL.Data.DLL is loaded in order for this to work.

If I place the line:

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

at the top of my script (separate to the Import-Module entry), then the whole thing works fine.

But I want to be able to load this assembly at the same time as the module, so that I don't have to worry about forgetting to including the assembly each time I use this module.

I tried placing it at the top of the .psm1 file, but that didn't work.

I then added it to my manifest file as: RequiredAssemblies = @("C:\PowerShell\modules\runMySQLQuery\MySql.Data.dll")

This also didn't work.

Am I missing something here, is there a proper way to include assemblies as part of a module?

n.b. the error I get when it hasn't loaded properly is:

You cannot call a method on a null-valued expression

Upvotes: 0

Views: 2308

Answers (1)

JPBlanc
JPBlanc

Reputation: 72680

Can you just try to assign a varialbe a the beginig of you module :

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

Upvotes: 1

Related Questions