I'm trying to call PowerShell function through c# code.
**#This is sample PowerShell function**
function Add-num {
param($int1,$int2)
Write-Host ($int1 + $int2)
}
**#This is my c# code**
class Program
{
static void Main(string[] args)
{
String file = @"E:\powershell\Untitled3.ps1";
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
using (PowerShell PowerShellInstance = PowerShell.Create())
{
PowerShellInstance.AddScript(file);
PowerShellInstance.AddCommand("Add-num").AddParameters(new Dictionary<string, string>
{
{"int1","6" },
{"int2","7" }
});
// Collection<PSObject> PSOutput = PowerShellInstance.Invoke();
foreach (PSObject outputItem in PowerShellInstance.Invoke())
{
Console.WriteLine(outputItem.BaseObject);
}
runspace.Close();
}
}
}
Error: An unhandled exception of type 'System.Management.Automation.CommandNotFoundException' occurred in System.Management.Automation.dll
Additional information: The term 'Add-num' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
The above error is thrown when I execute this code. But when I run from PowerShell code works fine. I've checked the file path and file name everything is fine can anyone help me on this. The error is pointing at Invoke.