Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9365aa16cd | |||
| 36331e8664 | |||
| d0e57d8d7b |
@@ -1,10 +1,21 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||
<PackageId>ReleaseUpdater.Common</PackageId>
|
||||
<Version>1.0.0</Version>
|
||||
<Authors>FrigaT</Authors>
|
||||
<Company>FrigaT</Company>
|
||||
<Product>ReleaseUpdater</Product>
|
||||
<Description>Система обновления приложений через github/gitea системы контроля версий.</Description>
|
||||
<Copyright>Copyright © 2025 FrigaT</Copyright>
|
||||
<RepositoryUrl>https://git.frigat.duckdns.org/FrigaT/ReleaseUpdater</RepositoryUrl>
|
||||
<RepositoryType>git</RepositoryType>
|
||||
<PackageProjectUrl>https://git.frigat.duckdns.org/FrigaT/ReleaseUpdater</PackageProjectUrl>
|
||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -1,9 +1,21 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||
<PackageId>ReleaseUpdater</PackageId>
|
||||
<Version>1.0.0</Version>
|
||||
<Authors>FrigaT</Authors>
|
||||
<Company>FrigaT</Company>
|
||||
<Product>ReleaseUpdater</Product>
|
||||
<Description>Система обновления приложений через github/gitea системы контроля версий.</Description>
|
||||
<Copyright>Copyright © 2025 FrigaT</Copyright>
|
||||
<RepositoryUrl>https://git.frigat.duckdns.org/FrigaT/ReleaseUpdater</RepositoryUrl>
|
||||
<RepositoryType>git</RepositoryType>
|
||||
<PackageProjectUrl>https://git.frigat.duckdns.org/FrigaT/ReleaseUpdater</PackageProjectUrl>
|
||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@@ -11,17 +23,7 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ReleaseUpdater.Common\ReleaseUpdater.Common.csproj"
|
||||
PrivateAssets="none"
|
||||
IncludeAssets="all"
|
||||
/>
|
||||
<ProjectReference Include="..\ReleaseUpdater.Common\ReleaseUpdater.Common.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<Target Name="CopyProjectReferencesToPackage" AfterTargets="Pack">
|
||||
<ItemGroup>
|
||||
<BuildOutputInPackage Include="$(OutputPath)ReleaseUpdater.Common.dll"
|
||||
TargetPath="lib\net8.0\ReleaseUpdater.Common.dll" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -72,7 +72,7 @@ public static class ReleaseUpdaterFacade
|
||||
/// Обновление через внешний Updater.exe.
|
||||
/// </summary>
|
||||
public static async Task UpdateWithExternalAsync(
|
||||
string apiUrl, string? token, string installPath, string appExe, string versionOrLatest = "latest", string? updaterExePath = null, bool exitCurrentApp = false)
|
||||
string apiUrl, string? token, string installPath, string appExe, string versionOrLatest = "latest", string? updaterExePath = null, bool exitCurrentApp = false, string? tempUpdaterDirectory = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -83,13 +83,31 @@ public static class ReleaseUpdaterFacade
|
||||
var asset = release.Assets.FirstOrDefault(a => a.Name.EndsWith(".zip"))
|
||||
?? throw new Exception("No zip asset found");
|
||||
|
||||
string tempNumber = $"{Guid.NewGuid():N}";
|
||||
var tempUpdaterName = $"updater_{tempNumber}.exe";
|
||||
|
||||
if (updaterExePath == null) updaterExePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Updater.exe");
|
||||
|
||||
if (string.IsNullOrWhiteSpace(tempUpdaterDirectory))
|
||||
{
|
||||
tempUpdaterDirectory = Path.GetDirectoryName(updaterExePath);
|
||||
tempUpdaterDirectory = Path.Combine(tempUpdaterDirectory!, "tempUpdater");
|
||||
}
|
||||
|
||||
if (!Directory.Exists(tempUpdaterDirectory))
|
||||
{
|
||||
Directory.CreateDirectory(tempUpdaterDirectory);
|
||||
}
|
||||
|
||||
var tempUpdaterPath = Path.Combine(tempUpdaterDirectory, tempUpdaterName!);
|
||||
|
||||
|
||||
var downloader = new HttpAssetDownloader();
|
||||
var zipPath = await downloader.DownloadAssetAsync(asset.DownloadUrl, token);
|
||||
var zipPath = await downloader.DownloadAssetAsync(asset.DownloadUrl, token, Path.Combine(tempUpdaterDirectory, $"updater_{tempNumber}.zip"));
|
||||
|
||||
BeforeInstall?.Invoke();
|
||||
|
||||
|
||||
if (updaterExePath == null) updaterExePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Updater.exe");
|
||||
File.Copy(updaterExePath, tempUpdaterPath);
|
||||
|
||||
if (installPath.EndsWith("\\"))
|
||||
{
|
||||
@@ -113,7 +131,7 @@ public static class ReleaseUpdaterFacade
|
||||
|
||||
var process = Process.Start(new ProcessStartInfo
|
||||
{
|
||||
FileName = updaterExePath,
|
||||
FileName = tempUpdaterPath,
|
||||
Arguments = args,
|
||||
UseShellExecute = true,
|
||||
WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory
|
||||
|
||||
@@ -1,18 +1,29 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||
<Version>1.0.0</Version>
|
||||
<Authors>FrigaT</Authors>
|
||||
<Company>FrigaT</Company>
|
||||
<Product>ReleaseUpdater</Product>
|
||||
<Description>Запускатор обновления</Description>
|
||||
<Copyright>Copyright © 2025 FrigaT</Copyright>
|
||||
<RepositoryUrl>https://git.frigat.duckdns.org/FrigaT/ReleaseUpdater</RepositoryUrl>
|
||||
<RepositoryType>git</RepositoryType>
|
||||
<PackageProjectUrl>https://git.frigat.duckdns.org/FrigaT/ReleaseUpdater</PackageProjectUrl>
|
||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="ArgumentsToolkit" Version="0.0.3" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="ArgumentsToolkit" Version="0.0.3" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ReleaseUpdater.Common\ReleaseUpdater.Common.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ReleaseUpdater.Common\ReleaseUpdater.Common.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
Reference in New Issue
Block a user