@@ -52,17 +52,29 @@ public async Task<bool> ImportPlasterIfInstalled()
5252 if ( ! this . isPlasterInstalled . HasValue )
5353 {
5454 PSCommand psCommand = new PSCommand ( ) ;
55- psCommand . AddCommand ( "Get-Module" ) ;
56- psCommand . AddParameter ( "ListAvailable" ) ;
57- psCommand . AddParameter ( "Name" , "Plaster" ) ;
55+
56+ psCommand
57+ . AddCommand ( "Get-Module" )
58+ . AddParameter ( "ListAvailable" )
59+ . AddParameter ( "Name" , "Plaster" ) ;
60+
61+ psCommand
62+ . AddCommand ( "Sort-Object" )
63+ . AddParameter ( "Descending" )
64+ . AddParameter ( "Property" , "Version" ) ;
65+
66+ psCommand
67+ . AddCommand ( "Select-Object" )
68+ . AddParameter ( "First" , 1 ) ;
5869
5970 Logger . Write ( LogLevel . Verbose , "Checking if Plaster is installed..." ) ;
6071
6172 var getResult =
62- await this . powerShellContext . ExecuteCommand < object > (
73+ await this . powerShellContext . ExecuteCommand < PSObject > (
6374 psCommand , false , false ) ;
6475
65- this . isPlasterInstalled = getResult . Any ( ) ;
76+ PSObject moduleObject = getResult . First ( ) ;
77+ this . isPlasterInstalled = moduleObject != null ;
6678 string installedQualifier =
6779 this . isPlasterInstalled . Value
6880 ? string . Empty : "not " ;
@@ -77,9 +89,10 @@ await this.powerShellContext.ExecuteCommand<object>(
7789 Logger . Write ( LogLevel . Verbose , "Loading Plaster..." ) ;
7890
7991 psCommand = new PSCommand ( ) ;
80- psCommand . AddCommand ( "Import-Module" ) ;
81- psCommand . AddParameter ( "Name" , "Plaster" ) ;
82- psCommand . AddParameter ( "PassThru" ) ;
92+ psCommand
93+ . AddCommand ( "Import-Module" )
94+ . AddParameter ( "ModuleInfo" , ( PSModuleInfo ) moduleObject . ImmediateBaseObject )
95+ . AddParameter ( "PassThru" ) ;
8396
8497 var importResult =
8598 await this . powerShellContext . ExecuteCommand < object > (
0 commit comments