VB.NET в Vista, попытка получить дату (сегодня) вызывает исключение безопасности - PullRequest
2 голосов
/ 15 сентября 2008

У меня есть программа VB6, которую недавно кто-то помог мне преобразовать в VB.NET

В программе при сохранении файлов я отмечаю их датой, полученной при вызове функции Today ().

Когда я пытаюсь запустить новый код VB.NET в Vista, он выдает исключение разрешения для Today (). Если я запускаю Visual Studio Express (это версия 2008 Express) в режиме администратора, то проблема не возникает, но ясно, что я хочу получить автономную программу, которая запускается для всех пользователей без особых разрешений. *

Так как обычная программа VB.NET в Vista может получить сегодняшнюю дату?

Ответы [ 3 ]

10 голосов
/ 15 сентября 2008

Используйте DateTime.Now или DateTime.Today. Они полностью управляемы и не должны вызывать исключения безопасности.

Старые функции VB6, такие как Len(), Left(), Right(), OpenFile(), FreeFile(), все присутствуют в .NET Framework в Microsoft.VisualBasic DLL. Для обеспечения обратной совместимости все они вызывают старые функции в неуправляемом коде. Неуправляемый код требует специальных разрешений безопасности, потому что это может быть опасно.

По возможности, попробуйте использовать новые функции .NET. Они обычно намного быстрее (например, File IO, используя Streams) и безопаснее.

0 голосов
/ 15 сентября 2008

Функция Today () должна работать правильно в Vista. Я считаю, что за кулисами просто оценивается свойство DateTime.Today, поэтому оно не должно выдавать никаких исключений. Если вы переносите VB на VB.NET, вам, вероятно, следует использовать свойство DateTime.Today, а не код совместимости VB6.

0 голосов
/ 15 сентября 2008

Когда я пытаюсь сделать следующее утверждение:

Dim result As String = Today()

Это дает мне сегодняшнюю дату, как я и ожидал, и я использую VB2005 на Vista. Можете ли вы изменить вопрос с версией VB, которую вы используете? Кроме того, можете ли вы попробовать следующее утверждение вместо Today(), чтобы увидеть, что оно работает для вас без исключения?

Dim result As String = Now()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...