示例#1
0
        private static string GetStdioBridgePath()
        {
            var installedPath   = Utility.PathCombine(PathManager.GetUCEFolder(), "StdioBridge.exe");
            var versionFilePath = PathManager.GetStdioBridgeVersionFilePath();

            bool needUpdated = false;

            if (File.Exists(versionFilePath))
            {
                var cachedVersion = File.ReadAllText(versionFilePath).Trim();
                int cachedVersionNumber;
                if (int.TryParse(cachedVersion, out cachedVersionNumber))
                {
                    if (cachedVersionNumber < Constants.STDIO_BRIDGE_VERSION)
                    {
                        needUpdated = true;
                    }
                }
                else
                {
                    needUpdated = true;
                }
            }
            else
            {
                needUpdated = true;
            }

            var srcPath = Path.Combine(UCE_FOLDER_IN_PROJECT, "Data/sb.db");

            if (!File.Exists(installedPath))
            {
                Utility.Unpack(srcPath, installedPath);
                if (needUpdated)
                {
                    File.WriteAllText(versionFilePath, Constants.STDIO_BRIDGE_VERSION.ToString());
                }

                return(installedPath);
            }

            if (needUpdated)
            {
                Utility.Unpack(srcPath, installedPath);
                File.WriteAllText(versionFilePath, Constants.STDIO_BRIDGE_VERSION.ToString());
            }

            return(installedPath);
        }