在 VSTO 插件中设置 CurrentCulture
Posted
技术标签:
【中文标题】在 VSTO 插件中设置 CurrentCulture【英文标题】:Setting CurrentCulture in VSTO Addin 【发布时间】:2013-09-26 13:05:41 【问题描述】:我正在为 Excel 2007 创建一个 VSTO 插件。在我的开发计算机上使用英语(英国)区域设置一切正常。但是,一些最终用户会有其他设置。
向数据库添加信息时一切正常,但是当我尝试使用英语(美国)区域设置填充数据表时,它会失败。
Dim TA As New DB_InquiriesTableAdapters.qry_InquiriesTableAdapter
Dim DB As New DB_Inquiries.qry_InquiriesDataTable
TA.Fill(DB) 'FAILS HERE as date format is incorrect for regional settings
我尝试在插件启动中设置 Thread.CurrentCulture 但这会抛出异常并说:
不支持 MSCORLIB 文化
有人知道如何解决这个问题吗?
【问题讨论】:
你看过这篇文章吗? ***.com/questions/2116821/… 刚刚通读,按照上面说的尝试删除文件,但还是不行。 您是否符合那里提到的条件?选择的解决方案说它是 VS 2010 Beta 的错误。 不使用 2013 Pro。反正我找到了解决办法!立即发布。 完美!然后把它写成答案。 【参考方案1】:我的原始代码是这样的:
Imports System.Threading
Imports System.Globalization
Public Class MyClass
Public Sub MySub
Thread.CurrentCulture=New CultureInfo("en-GB")
Thread.CurrentUICulture=New CultureInfo("en-GB")
....
End Sub
End Class
尝试设置当前文化时会抛出异常。
新代码:
Public Class MyClass
Public Sub MySub
My.Application.SetCulture("en-GB")
....
End Sub
End Class
该应用程序是用 VS2013 Professional 编写的 VSTO Excel 插件,该类链接到 Winforms 表单中托管的 WPF UserControl。
希望这有助于更好地解释答案。
【讨论】:
我猜My.Application.SetCulture是2013年的新方法(无法测试)。它不存在于任何以前的 VS 版本中,也找不到任何关于它的 MSDN 文档。以上是关于在 VSTO 插件中设置 CurrentCulture的主要内容,如果未能解决你的问题,请参考以下文章
在 Zend Framework 2 中设置视图插件的最佳方法是啥?
如何在 Cakephp 4 的另一个插件中设置对插件的依赖?