Я выполняю файл сценария Powershell из C # со следующим кодом:
Runspace _rs = RunspaceFactory.CreateRunspace();
_rs.ApartmentState = ApartmentState.STA;
_rs.Open();
PipeLine _pipeLine = _rs.CreatePipeline();
Command scriptCommand = new Command(filePath);
_pipeLine.Invoke();
В файле сценария powershell я ссылаюсь на библиотеки:
Add-Type -Path Filepath.dll
В C # я располагаюпослесловия пространства выполнения и конвейера, пытающиеся разблокировать связанные библиотеки.
finally
{
_rs.Dispose();
_pipeLine.Dispose();
}
К сожалению, на более позднем этапе при попытке удалить DLL-файлы, связанные в сценарии, я получаю исключение UnauthorizedException.Обратите внимание, что я не получаю исключение, если я никогда не запускаю скрипт из C #.Я определенно должен иметь доступ к нему.