2017-10-13 47 views
0

我有一個簡單的dotnet應用程序,我想從powershell執行。但是當我傳遞參數在PowerShell中我的dotnet應用程序無法捕獲這些值。 我不確定錯誤在哪裏。它是在dotnet端還是在powershell中。 DOTNET的winform無法讀取PowerShell參數列表

private void Form1_load(object sender, EventArgs e) 
    { 
     string[] passedArgs = Environment.GetCommandLineArgs(); 
     foreach(string s in passedArgs) 
     { 

      textBox1.Text = s.ToString(); 
     } 
    } 

PowerShell腳本

PS C:\Users\528741> Start-Process 'D:\MVC\PowershellTest\PowershellTest\bin\Debug\PowershellTest.exe' -ArgumentList '/hello' 

感謝, Rosalini

回答

0

這很難說沒有看到什麼可能會出錯的應用程序的其餘部分,因爲你已經證明什麼我們很簡單。您可以嘗試:

textbox1.Text = "Does a string literal work?"; 

如果文本沒有顯示你的字符串字面量,這個問題是在你的C#或在您的WinForms應用程序的設計。也許textbox1不再可見,並且顯示了其他一些文本框對象?當你認爲它可能不會被調用Form1_load()方法。某個地方的名字變了嗎?如果是這種情況,我會建議重新創建窗體並將Form1_load()方法的代碼粘貼到那裏,然後重試。

如果它按預期顯示,那麼我會懷疑Powershell。您是否嘗試過沒有啓動過程?像:

& "D:\MVC\PowershellTest\PowershellTest\bin\Debug\PowershellTest.exe" "I'm argument 1" "This is argument 2" "3rd argument here!" 

而且,你的代碼看起來很簡單,你確定這是你的可執行文件的正確路徑?在對代碼進行更改後,是否重新構建瞭解決方案?這種簡單的疏忽往往是問題。