文件版本信息在外语操作系统中不起作用

时间:2014-05-08 15:15:07

标签: c# .net vb.net string

这是我用于检查更新然后启动更新文件的代码。基本上我用在线文本检查文件版本,看看哪个更大。

Dim wc As New WebClient()
        Dim upt As Double = Double.Parse(wc.DownloadString("someurl/update.txt"))

        Dim Info As FileVersionInfo
        Info = FileVersionInfo.GetVersionInfo(Application.StartupPath & "\app.exe")

        Dim curr As Double = Double.Parse(Info.FileVersion.Split(".")(0) & "." & Info.FileVersion.Split(".")(1) & Info.FileVersion.Split(".")(2))

        If (upt > curr) Then
            If (MessageBox.Show("Please Update app !!!", "Update Available", MessageBoxButtons.OK, MessageBoxIcon.Question) = Windows.Forms.DialogResult.OK) Then

                Dim ui As New updateinfo
                ui.RichTextBox1.Text = wc.DownloadString("someurl")
                ui.ShowDialog()

                Process.Start(Application.StartupPath & "\update.exe")
                Application.Exit()
            Else
                Application.Exit()
            End If
        End If

问题在于非英语操作系统会给我一些错误,例如"输入字符串的格式不正确"。怎么解决?不幸的是,我无法访问任何其他语言操作系统,并希望深入了解它。

另外任何其他检查更新的方法都会很好 - 我不能使用clickonce

1 个答案:

答案 0 :(得分:1)

使用Double.Parse("3.5", CultureInfo.InvariantCulture)(其中"3.5"是您的字符串)。一些外语操作系统期望逗号作为小数分隔符,这就是使它崩溃的原因。 CultureInfo.InvariantCulture基本上意味着"using English culture",其中句点将解析得很好。