@@ -52,17 +52,29 @@ public async Task<bool> ImportPlasterIfInstalled()
52
52
if ( ! this . isPlasterInstalled . HasValue )
53
53
{
54
54
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 ) ;
58
69
59
70
Logger . Write ( LogLevel . Verbose , "Checking if Plaster is installed..." ) ;
60
71
61
72
var getResult =
62
- await this . powerShellContext . ExecuteCommand < object > (
73
+ await this . powerShellContext . ExecuteCommand < PSObject > (
63
74
psCommand , false , false ) ;
64
75
65
- this . isPlasterInstalled = getResult . Any ( ) ;
76
+ PSObject moduleObject = getResult . First ( ) ;
77
+ this . isPlasterInstalled = moduleObject != null ;
66
78
string installedQualifier =
67
79
this . isPlasterInstalled . Value
68
80
? string . Empty : "not " ;
@@ -77,9 +89,10 @@ await this.powerShellContext.ExecuteCommand<object>(
77
89
Logger . Write ( LogLevel . Verbose , "Loading Plaster..." ) ;
78
90
79
91
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" ) ;
83
96
84
97
var importResult =
85
98
await this . powerShellContext . ExecuteCommand < object > (
0 commit comments