nicht aufrufen Ich versuche, die Startmethode eines System.Diagnostics.Process aufzurufen. Ich habe viele andere Beispiele im Internet gesehen jedoch, dass genau das gleiche tun, wenn ich meinen Code ausführen:Konnte dotnet Methoden von Powershell
$process = new-object System.Diagnostics.Process
$config.variables.properties | foreach {
$process.StartInfo.EnvironmentVariables.Set_Item($_.name, $_.value)
}
$process.StartInfo.UseShellExecute = false;
$process.StartInfo.FileName = "C:\Program Files\IIS Express\iisexpress.exe"
$process.StartInfo.Arguments = "/config:$configPath\${name}ApplicationHost.config \site:$name"
$process.Start()
ich diesen sinnlosen Fehler:
Exception calling "Start" with "0" argument(s): "The parameter is incorrect"
At C:\Users\critc\Source\run-iisexpress.ps1:67 char:1
+ $started = $process.Start() | Out-Null
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : Win32Exception
Diese Methode hat einen Parameter 0 Überlastung. Infact, wenn ich die Klammern aus dem Aufruf von Powershell fallen in es unendlich ist Weisheit sagt mir Theres eine Null Parameter Überlastung
OverloadDefinitions
-------------------
bool Start()
Powershell mich ist Trolling! Ursprünglich war ich eine Process Instanz erstellen und versuchen, es auf die statische Process.Start Methode zu übergeben, und ich war die gleichen Fehler (außer es with "1" argument(s)
sagte)
UPDATE
Heres Code meines aktualisiert, die funktionieren.
$process = new-object System.Diagnostics.Process
Get-Member -inputObject $config.variables -memberType Properties | foreach {
$value = $config.variables | select -exp $_.name
$process.StartInfo.EnvironmentVariables.Set_Item($_.name, $value)
}
$process.StartInfo.UseShellExecute = $false
$process.StartInfo.FileName = "C:\Program Files\IIS Express\iisexpress.exe"
$process.StartInfo.Arguments = "/config:`"$configPath\${name}ApplicationHost.config`" /site:$name"
$started = $process.Start()
if ($started) {
$process.WaitForExit()
}
$ process.StartInfo.UseShellExecute = false sollte process.StartInfo.UseShellExecute $ = $ false, sollte es nicht? –
@DavidBrabant ja du bist richtig, wie das scheint nicht die Ursache meiner Leiden gewesen zu sein – Sam
hier ist alles wie ein Geist, wenn jemand interessiert - https://gist.github.com/worldspawn/ed3e16accbdefaa8ee35 – Sam