Я работаю над приложением, которое отслеживает очереди печати. Для этого нужно уметь их администрировать. Приложение работает нормально, когда я запускаю его для отладки, однако, когда я пытаюсь выполнить модульное тестирование класса, выдается исключение безопасности. Есть ли способ повысить уровень безопасности визуального студийного теста?
PrintQueue q = new PrintQueue(server, QueueName,
PrintSystemDesiredAccess.AdministratePrinter);
выдает исключение:
Попытка прозрачного для безопасности метода «MS.Internal.PrintWin32Thunk.PrinterDefaults.Dispose (Boolean)» для доступа к критическому методу безопасности «MS.Internal.PrintWin32Thunk.PrinterDefaults.InternalDispose (Boolean)» завершилась неудачей.
Опять же, исключение не выдается, и класс работает как положено, когда используется вне модульного тестирования. Я пытался запустить Visual Studio в качестве администратора, но все равно получил исключение.
ОБНОВЛЕНИЕ: похоже, я не смогу протестировать этот класс. Библиотека классов, содержащая ее, уже написана на .NET 3.5, поэтому исключение не возникает при использовании класса. Я провел дальнейшие эксперименты и обнаружил, что, хотя эта библиотека классов предназначена для .NET 3.5, класс, выбрасывающий исключение, не может использоваться приложением, нацеленным на .NET 4.0. Тестовые проекты Visual Studio требуются для .NET 4.0.