VB.NET プロジェクトからビルドされた .NET アセンブリを参照する C# プロジェクトがあります。
この VB.NET アセンブリには、管理者権限が必要です。
C# プロジェクトに次のマニフェストを作成しました。
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
そして、すべてが良さそうです:実行すると:
bool isAdmin = new WindowsPrincipal(WindowsIdentity.GetCurrent())
.IsInRole(WindowsBuiltInRole.Administrator) ? true : false;
私のC#コードから、私はisAdmin == True
期待どおりに取得しますが、VB.NET DLLからメソッドを呼び出すと:
My.User.IsInRole(Microsoft.VisualBasic.ApplicationServices.BuiltInRole.Administrator)
代わりに False を取得します。
これは私には非常に非論理的に思えます。
さらに、この VB.NET アセンブリへの参照を使用して VB.NET プロジェクトを作成し、管理者権限で実行すると、すべて正常に動作します。