私は少し奇妙な問題を抱えています..次の行は、powershellで直接正常に実行されます。
1) powercfg -AVAILABLESLEEPSTATES
2) powercfg -energy
簡単に言えば、-energy はそのファイルを生成し、私が操作できる他のフラグがあります。
C# から 1 行目を実行することも問題なく動作します (このサイト全体の素晴らしいメソッドのいずれかで、
Powershell s_ps = PowerShell.Create();
s_ps.AddScript("powercfg -AVAILABLESLEEPSTATES");
Collection<PSObject> results = s_ps.Invoke();
(またはパイプラインを介してすべてを実行するバージョン、または PSCommand() を作成するバージョンなど)
-energy で同じことを実行すると、コンソールから正常に動作しますが、C# から呼び出そうとすると、「energy.dll」またはその依存関係の 1 つが見つからないという話が始まります。もちろん、すべてのdll(依存関係を含む)はそこにあります-コマンドラインから実行され、とにかく手動で検証されるためです。
Visual Studio は管理者モードで実行されています。念のため、ap をビルドし、管理者モードでも直接実行してみました。
dllを手動でロードしようとしました
s_ps.AddScript(@"[Reflection.Assembly]::LoadFrom('C:\Windows\System32\energy.dll') | Out-Null");
しかし、それはそれを言う余分なエラーをスローするだけです
「ファイルまたはアセンブリ 'file:///C:\Windows\System32\energy.dll' またはその依存関係の 1 つを読み込めませんでした」
他に何が問題を引き起こしているのか、誰か考えがありますか? (少し走らなければなりませんが、他の誰かよりも先に解決策を見つけた場合は、もちろん投稿します。運が悪いにもかかわらず、ほとんどの時間、それに取り組んでいます)