繁体   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