这是我用于检查更新然后启动更新文件的代码。基本上我用在线文本检查文件版本,看看哪个更大。
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
答案 0 :(得分:1)
使用Double.Parse("3.5", CultureInfo.InvariantCulture)
(其中"3.5"
是您的字符串)。一些外语操作系统期望逗号作为小数分隔符,这就是使它崩溃的原因。 CultureInfo.InvariantCulture
基本上意味着"using English culture",其中句点将解析得很好。