我有一个 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()
都存在于 .NET Framework 的 Microsoft.VisualBasic DLL 中。为了保持向后兼容性,它们都在非托管代码中调用旧函数。非托管代码需要特殊的安全权限,因为它可能很危险。
只要有可能,请尝试使用较新的 .NET 函数。它们通常更快(例如使用 Streams 的文件 IO)并且更安全。
关于Vista 上的 VB.NET,尝试获取日期(今天)导致安全异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64469/