я написал модуль PowerShell функции вроде этого:Использовать пользовательский модуль PowerShell в C#
Function docConvert2{
param ([string]$sourceFile, [string]$sourceFilePath)
....
....
}
Я импортированный модуль успешно
И я могу использовать модуль в Powershell командлета
Когда я пытаюсь вызвать функцию в C#, я получил исключение, подобное этому
Термин «docConvert2» не распознается как имя командлета, функции, файла сценария или исполняемой программы. Проверьте правильность написания имени или, если включен путь, проверьте правильность пути и повторите попытку.
C# код
PowerShell pShell = PowerShell.Create();
pShell.Commands.AddCommand("import-module").AddParameter("Name", "DocConverter2");
pShell.Invoke();//works correctly
pShell.AddCommand("docConvert2");
pShell.AddParameter("sourceFile", "'addendum no-3_PREP.doc'");
pShell.AddParameter("sourceFilePath", @"'D:\New\wordler'");
pShell.Invoke();//throw exception
Что моя ошибка?
Спасибо за совет, но, к сожалению, это не работает. У меня такое же исключение, я написал комментарий об этом в ответе Эоина. – Dreamcatcher
@Dreamcatcher Попробуйте сейчас. Я забыл 'pShell.Invoke();' перед вами код .. –
Я пытаюсь, но, к сожалению, это не работает снова. Однако я нашел некоторый пограничный случай. Если я запустил powershell.exe из Run, Powershell.exe запустил путь «C: \ Windows \ system32 \ WindowsPowerShell \ v1.0>», и если я запустил PowerShell.exe в Start, PowerShell.exe запустится в «C: \ Users» \ Dreamcatcher> ". Это причина проблемы? – Dreamcatcher