View Single Post
Old 03-13-2007   #2 (permalink)
aaronlerch@gmail.com


 
 

Re: referencing system.management.automation DLL (or other Gac'd ones)

The following command will load assemblies from the GAC, you can
experiment with the various static "Load*" methods on the Assembly
class to get the exact file/version that you need (i.e. if you're ever
looking for a particular revision of System.Management.Automation.dll
instead of just the most recent one).

PS>
[System.Reflection.Assembly]::LoadWithPartialName("System.Management.Automation")

GAC Version Location
--- ------- --------
True v2.0.50727 C:\WINDOWS\assembly\GAC_MSIL
\System.Management.Automation\1.0.0.0__31bf3856ad364e35\System.Man...


On Mar 13, 2:27 pm, klu...@xtra.co.nz wrote:
> How do you reference DLLs in the gac dynamically? Is there a method to
> find a link to the gac'd items? Currently the only way I can seem to
> reference this one dynamically to pass to CSharpCodeProvider is by
> looking at the location of the currently loaded one with
>
> $(([appdomain]::currentdomain.getassemblies() |where {($_.fullname
> -match "system.management.automation")}).location)
>
> $ClassSystem.CSharpCodeProvider = new-object
> Microsoft.CSharp.CSharpCodeProvider
> $ClassSystem.StandardParams = new-object
> System.CodeDom.Compiler.CompilerParameters
> $ClassSystem.StandardParams.GenerateInMemory = $True
>
> $private:refs = "System.DLL","System.management.dll",
> $(([appdomain]::currentdomain.getassemblies() |where {($_.fullname
> -match "system.management.automation")}).location)
>
> $ClassSystem.StandardParams.ReferencedAssemblies.AddRange($refs)
>
> -Karl



My System SpecsSystem Spec