Я имею немного нечетную проблему .. следующие строки прекрасно работают непосредственно в PowerShell:C# вызова Powershell, DLL не может быть загружена
1) powercfg -AVAILABLESLEEPSTATES
2) powercfg -energy
Прямо вперед достаточно, -Энергетика генерирует файл, имеют другие флаги Я мог бы играть.
Бегущая строка 1 из C# работает отлично тоже (ни в одном из прекрасных методов на этом сайте, как
Powershell s_ps = PowerShell.Create();
s_ps.AddScript("powercfg -AVAILABLESLEEPSTATES");
Collection<PSObject> results = s_ps.Invoke();
(или версии, которые выполняются все через трубопровод, или создать PSCommand(), и так on)
Выполнение такого же действия на -energy отлично работает с консоли, но если я попытаюсь позвонить ему через C#, он начнет говорить об отсутствии «energy.dll» или одной из его зависимостей. Все DLL (включая зависимостей), конечно, есть, поскольку он выполняется из командной строки и проверяется вручную в любом случае.
Visual Studio работает в режиме администратора, просто чтобы быть на безопасной стороне, я построил ар и попытался запустить это прямо в режиме администратора слишком
Я попытался вручную загрузке DLL
s_ps.AddScript(@"[Reflection.Assembly]::LoadFrom('C:\Windows\System32\energy.dll') | Out-Null");
Но он просто бросает дополнительную ошибку, говоря, что
«не удалось загрузить файл или сборку„файла: /// C: \ Windows \ System32 \ energy.dll“или один из его зависимостей»
Есть ли у кого-нибудь мысли о том, что еще может вызвать проблемы? (Должен бежать немного, но если я найду решение перед кем-то другим, я, конечно, опубликую его, надавил на него большую часть дня, хотя не повезло)
Попробуйте найти некоторые ссылки слева в разделе «Соответствующие» здесь, это может помочь вам http://stackoverflow.com/questions/527513/execute-powershell-script-from-c-sharp-with- commandline-arguments – MethodMan
Спасибо за предложение, я действительно просмотрел эту и еще несколько десятков на самом деле. У меня нет проблем с вызовом сценария (приведенный выше код основан на этих различных ссылках), проблема в том, что с помощью C# он не может загрузить встроенную энергию.dll (которые эта ссылка и другие не охватывают). Если я не пропустил один - есть, конечно, шанс, что я пропустил ссылку, не понимая? И это не dll cutsom (http://stackoverflow.com/questions/4259727/powershell-2-0-runtime-exception-could-not-load-file-or-assembly?rq=1) или что-то в этом роде , –
(обновление: обнаружено обходное решение, которое не требует этого вызова. Я буду продолжать возиться с этим в свое время, и если я придумаю что-то, что я опубликую, независимо от того, что проблема, я уверен, что он снова появится) –