Quindi .. molto strano problema.Proprietà "Informazioni" sulla proprietà Streams dell'istanza di Powershell non disponibile compiletime
Utilizzando VS2015 e .net 4.52
ho sviluppato questo codice # PowerShell C, è in esecuzione uno script e coglie l'uscita. in questo modo:
using (PowerShell powerShellInstance = PowerShell.Create())
{
powerShellInstance.AddScript(scriptContents);
Collection<PSObject> PSOutput = powerShellInstance.Invoke();
if (powerShellInstance.Streams.Information.Count > 0)
{
foreach (var item in powerShellInstance.Streams.Information)
{
//do something with info
}
}
}
}
compilato ed eseguito (su un Windows 10 macchine pro), nessun problema.
finché non ho avuto una macchina nuova (superficie pro 4, così anche le finestre 10 Pro) e ho cercato di compilare il codice, ottengo questo errore:
'PSDataStreams' does not contain a definition for 'Information' and no extension method 'Information' accepting a first argument of type 'PSDataStreams' could be found (are you missing a using directive or an assembly reference?)
Questo è tutto basato TFS, quindi sono sicuro che è lo stesso codice.
Se io goto definizione su due macchine il problema diventa evidente:
Così, ho commentato il codice non compilazione e corse, per vedere cosa stava succedendo runtime:
Quindi la proprietà È lì .. Qualcuno ha una buona spiegazione per questo?
BTW: la documentazione msdn non menziona una proprietà informazioni ..
Hai installato l'anteprima di Powershell 5 sul vecchio sistema, ma non quella nuova? O forse versioni diverse di esso tra i due? – alroc
No, questa è una macchina vincente pulita 10, con solo studio installato – Flores