我有以下c#代码:
var runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
var runSpaceInvoker = new RunspaceInvoke(runspace);
runSpaceInvoker.Invoke("Set-ExecutionPolicy Unrestricted");
// create a pipeline and feed it the script text
var pipeline = runspace.CreatePipeline();
var command = new Command(@". .\MyScript.ps1");
command.Parameters.Add("MyParam1", value1);
command.Parameters.Add("MyParam2", value2);
pipeline.Commands.Add(command);
pipeline.Invoke();
runspace.Close();
但我收到错误Powershell ps1文件“无法识别为cmdlet,函数,可操作程序或脚本文件。”
MyScript.ps1被复制到bin文件夹,因此它与正在运行的程序处于同一级别。
我发现了Powershell ps1 file "is not recognized as a cmdlet, function, operable program, or script file."
但它没有解决问题。知道还有什么可能导致这个错误吗?
答案 0 :(得分:1)
问题可能是您的应用程序从父进程继承其工作目录,因此您无法预测{{1}}是指可执行文件所在的目录。
您可以使用以下内容构建脚本的完整路径:
{{1}}