示例#1
1
 public Packet()
 {
     this.actionsAfterUpdateField = new ActionsType();
     this.changedFilesField = new List<string>();
     this.actionsBeforeUpdateField = new ActionsType();
     this.previousPacketsField = new List<PacketIdentificationType>();
     this.packetIdentificationField = new PacketIdentificationType();
 }
示例#2
0
        private void ExecActions(ActionsType actions)
        {
            try
            {
                foreach (var script in actions.Scripts)
                {
                    var tempFileName = Path.GetTempFileName();
                    var file = File.OpenWrite(tempFileName);
                    var stringWriter = new StreamWriter(file);
                    stringWriter.WriteLine($"set updAppDir={_folderContainsUpdate}");
                    stringWriter.WriteLine($"set instFolder={InstallationFolder}");
                    stringWriter.WriteLine($"set updateName={Definition.PacketIdentification.Guid}.zip");
                    stringWriter.WriteLine($"set programRun={ProgramRunning}");
                    stringWriter.Write(script);
                    stringWriter.Close();
                    var bat = Path.Combine(Path.GetDirectoryName(tempFileName),
                        "UPPY_bat_" + Path.GetFileNameWithoutExtension(tempFileName) + ".bat");
                    File.Move(tempFileName, bat);
                
                    var proc = Process.Start(bat);
                    
                    proc.WaitForExit();

                    try
                    {
                        File.Delete(bat);
                    }
                    catch (Exception e)
                    {
                        Logger.Error(e);
                    }
                }
            }
            catch (Exception e)
            {
                Logger.Error(e);
            }
        }