Back to this thread topic about the invalid double error.
The error reported is indeed confusing. It actually happens on the next line:
	
	
	
	
	
	
	
	
	
		If Starter.gVersionName < Version(0) Then
	 
	
	
		
	
 If you check the value of Starter.gVersionName you will see that it is "null".
The problem is in this code:
	
	
	
	
	
	
	
	
	
		gVersionName = KVS.Get("VersionName")
If gVersionName.Length = 0 Then
   gVersionName = Application.VersionName
   KVS.Put("VersionName", gVersionName)
End If
	 
	
	
		
	
 KVS.Get doesn't return an empty string when the key is not found. It returns Null (because the return type is Object).
The Null is converted to "null" when you assign it to a string.
A simple solution is to change the code to:
	
	
	
	
	
	
	
	
	
		gVersionName = KVS.GetDefault("VersionName", "")