使用VB.Net Now()/Today()时Xamarin应用崩溃问题求助
问题分析与解决
核心原因
你遇到的TypeLoadException是因为代码里调用的Now()是**Microsoft.VisualBasic.DateAndTime类的成员**,但你的Xamarin项目没有正确引用Microsoft.VisualBasic程序集,或者该程序集在Xamarin目标平台上的支持存在问题。硬编码日期(如#2022-12-25 3:10 PM#)属于VB语言本身的语法特性,不需要依赖额外程序集,所以能正常运行。
Xamarin下的正确做法
Xamarin基于.NET Standard/.NET Core生态,建议使用跨平台兼容的.NET标准API替代Visual Basic专属API:
- 用**.NET标准的
DateTime.Now**代替VB的Now(),这是跨平台通用的获取当前时间的方法,无需依赖Microsoft.VisualBasic程序集。 - 示例代码:
Shift.DateAndTime = DateTime.Now
若坚持使用VB的Now()(不推荐)
如果一定要保留VB的Now(),需要确保:
- 在Xamarin项目中添加对
Microsoft.VisualBasic程序集的引用(右键项目→管理NuGet程序包,搜索并安装Microsoft.VisualBasic包)。 - 注意:该方式可能存在平台兼容性风险,因为
Microsoft.VisualBasic的部分API并非完全跨平台适配。
内容的提问来源于stack exchange,提问作者sinsi
相关产品推荐
相关产品推荐

