我有一个VB6程序,有人最近帮我转换为VB.NET
在程序中,当保存文件时,我通过调用Today()函数将它标记为我所获得的日期.
当我尝试在Vista中运行新的VB.NET代码时,它会为Today()抛出一个权限异常.如果我在管理员模式下运行Visual Studio Express(这是2008 Express版本),那么问题就不会发生,但显然我希望最终得到一个独立的程序,该程序可以为没有花哨权限的所有用户运行.
那么Vista中的普通VB.NET程序怎么能得到今天的日期呢?
使用DateTime.Now
或DateTime.Today
.这些是完全托管的,不应该抛出安全异常.
旧VB6功能,例如Len()
,Left()
,Right()
,OpenFile()
,FreeFile()
都存在于Microsoft.VisualBasic程序DLL .NET框架.为了保持向后兼容性,它们都在非托管代码中调用旧函数.非托管代码需要特殊的安全权限,因为它可能很危险.
尽可能尝试使用较新的.NET函数.它们通常要快得多(例如,使用Streams的文件IO)并且更安全.