簡體   English   中英

如何從 C# 文件中調試“調用”Powershell (ps1)

[英]How to debug "invoking" Powershell (ps1) from C# file

我正在嘗試從 C# Visual Studio 解決方案調用 Powershell 文件。

顯然,在調試時,當它遇到調用 PS1 文件的行時,它似乎沒有做任何事情。

我收到這條消息:

在此處輸入圖像描述

我在 C# 中有這些行:

using System.Management.Automation;

PowerShell ps = PowerShell.Create();
ps.AddScript(File.ReadAllText(@"C:\Users\Justin\source\repos\HttpTrigger_1119\HttpTrigger_1119\list.ps1")).Invoke();

但是,當斷點到達下一行時,它並沒有顯示錯誤: 在此處輸入圖像描述

我的下一個嘗試是將斷點放在 ps1 文件本身中。

但是,它似乎甚至沒有在 ps1 文件的斷點處停止。

因為,它沒有命中 ps1 文件中的斷點,所以調用 PS1 文件時可能會丟失一些東西,不是嗎?

從現有的兩行中添加什么?

PowerShell ps = PowerShell.Create();
ps.AddScript(File.ReadAllText(@"C:\Users\Justin\source\repos\HttpTrigger_1119\HttpTrigger_1119\list.ps1")).Invoke();

關於“如何調試...”的問題

重構你的代碼:

PowerShell ps = PowerShell.Create();
ps.AddScript(File.ReadAllText(@"C:\Users\Justin\source\repos\HttpTrigger_1119\HttpTrigger_1119\list.ps1")).Invoke();

對於您可以在調試器中觀察到的內容:

var ps1Script = File.ReadAllText(...); 
var newPs = ps.AddScript(ps1Script); 
var psResult = newPs.Invoke();

並逐步檢查您的代碼,以確保它按照您的預期進行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM