Exemplo n.º 1
0
    public void Update(string applicationName, string updaterDirectory, string applicationExeFileName)
    {
        var applicationDirectory = Path.GetDirectoryName(applicationExeFileName);

        var backupDirectory = Path.Combine(updaterDirectory, $"{applicationName}.Backup");

        CopyDirectory(applicationDirectory, backupDirectory);

        var sourceDirectory = Path.Combine(updaterDirectory, applicationName);

        CopyDirectory(sourceDirectory, applicationDirectory);

        var repository = new DeploymentCommandRepository(_serializer);

        repository.Save(applicationName, new DeleteUpdater(updaterDirectory));

        var processStartInfo = new ProcessStartInfo
        {
            WorkingDirectory = applicationDirectory,
            FileName         = applicationExeFileName,
            Arguments        = applicationDirectory
        };

        Process.Start(processStartInfo);
    }
Exemplo n.º 2
0
    private void ScheduleCheckForUpdates()
    {
        var entryAssembly   = Assembly.GetEntryAssembly();
        var title           = GetTitle(entryAssembly);
        var applicationName = title;
        var now             = UniversalTime.Default.Now;
        var tomorrow        = now.AddDays(1);

        var repository = new DeploymentCommandRepository(_serializer);

        repository.Save(applicationName, new CheckForUpdates(tomorrow));
    }
Exemplo n.º 3
0
    public Task Update()
    {
        var entryAssembly   = Assembly.GetEntryAssembly();
        var title           = GetTitle(entryAssembly);
        var applicationName = title;

        var repository = new DeploymentCommandRepository(_serializer);

        DeploymentCommand command;

        try
        {
            command = repository.Get(applicationName);
        }
        catch
        {
            var now = UniversalTime.Default.Now;
            command = new CheckForUpdates(now);
        }

        return(Handle((dynamic)command));
    }