Đóng Gói Phần Mềm Thành File Exe

Xin kính chào chúng ta, nội dung bài viết lúc này mình đã khuyên bảo chúng ta đóng gói phần mềm thành tệp tin setup installer áp dụng script PowerShell.quý khách hàng đang xem: Đóng gói phần mềm thành file exe

Sau Lúc chúng ta viết dứt phần mềm bên trên Winsize, những bạn cần phải đóng gói phần mềm thành tệp tin setup.

Bạn đang xem: Đóng gói phần mềm thành file exe

Bình thường xuyên, các các bạn sẽ sử dụng phần mềm: Advance Installer, One Cliông chồng Install xuất xắc Installshield...

Trong bài viết này bản thân sẽ chỉ dẫn các bạn gói gọn vận dụng tool nhỏ dại thiết đặt thực hiện script PowerShell.

Lợi ích của Việc gói gọn này là tệp tin cài đặt của công ty khoảng tầm 300MB (nếu bạn nào code bằng Devexpress thì đang thấy dung lượng khôn xiết nhiều).

Nhược điểm: Muốn nắn setup nên tất cả mạng mạng internet.

Xem thêm: Mẫu Giấy Bổ Nhiệm Kế Toán Trưởng, Trưởng Phòng, Mẫu Quyết Định Bổ Nhiệm Kế Toán Trưởng

Các bạn cũng có thể msinh sống công tác Powershell ISE, nhằm code script


*

Các bước gói gọn ứng dụng SVG Collection của chính bản thân mình.

Bước 1: Nén File ứng dụng sống thỏng mục Release lên hosting website của các bạn

Và Khi chạy Script thiết lập chúng ta đang triển khai quá trình quá trình sau:

Bước 2: Download file từ hosting name VD: https://vanthe.vn/svg_csharp.rar 

Bước 3: Giải nén tệp tin rar vào thư mục họ chỉ định

Cách 4: Xóa File rar họ vẫn cài đặt về

Bước 5: Chạy msinh sống áp dụng lên

Bước 6: Tạo shortcut ứng dụng trước Desktop.

Script mình viết cũng dễ dàng và đơn giản chúng ta chỉ việc vào sửa đổi những thông số lại là ngừng nhé.

Sau Khi Viết Script PowerShell xong, bọn họ vẫn sử dụng PS2EXE => gửi file script thành tệp tin EXE

Video demo ứng dụng tạo nên sau khoản thời gian chế tạo ra file thiết đặt thành công:

Source code full script PowerShell setup:

::InputEncoding = ::OutputEncoding = New-Object System.Text.UTF8Encoding$host.UI.RawUI.WindowTitle = "Cài đặt ứng dụng Powershell - https://vanthe.vn"Add-Type -AssemblyName System.Windows.Forms$browser = New-Object System.Windows.Forms.FolderBrowserDialog$browser.Description = "Bạn Hãy lựa chọn thư mục thiết đặt phần mềm"$null = $browser.ShowDialog()$temp = $browser.SelectedPathWrite-Output $temp$url = "https://vanthe.vn/svg_csharp.rar"$output = $temp + "svg_csharp.rar"$start_time = Get-Date#Import-Module BitsTransfer#Start-BitsTransfer -Source $url -Destination $output#OR#Start-BitsTransfer -Source $url -Destination $output -AsynchronousFunction Get-Webtệp tin ($url) $dest = $output Write-Host "Đang mua $url`n" -ForegroundMàu sắc DarkGreen; $uri=New-Object "System.Uri" "$url" $request=::Create($uri) $request.set_Timeout(5000) $response=$request.GetResponse() $totalLength=::Floor($response.get_ContentLength()/1024) $length=$response.get_ContentLength() $responseStream=$response.GetResponseStream() $destStream=New-Object -TypeName System.IO.FileStream -ArgumentList $dest, Create $buffer=New-Object byte 10KB $count=$responseStream.Read($buffer,0,$buffer.length) $downloadedBytes=$count while ($count -gt 0) ::CursorLeft = 0 ::Write("Đang mua ứng dụng 0K of 1K (2%)", ::Floor($downloadedBytes/1024), $totalLength, ::Round(($downloadedBytes / $length) * 100,0)) $destStream.Write($buffer, 0, $count) $count=$responseStream.Read($buffer,0,$buffer.length) $downloadedBytes+=$count Write-Host "" Write-Host "`nDownload of `"$dest`" finished." -ForegroundMàu sắc DarkGreen; $destStream.Flush() $destStream.Close() $destStream.Dispose() $responseStream.Dispose()Get-Webtệp tin $urlWrite-Output đầu ra "Time taken: $((Get-Date).Subtract($start_time).Seconds) second(s)"Set-Location $tempFunction Extract-WinRarFiles Param ( $UnRarExePath = "$env:ProgramFilesWinRARUnRAR.exe", $UnRarSourcePath, $UnRarTargetPath, $OpenTargetLocation, $DeleteSourceRarFiles ) Begin Where-Object -FilterScript $_.extension -eq '.rar' ).FullName $RarFileSourceCount = $RarFilePaths.Count Process $NewLine Write-đầu ra -Verbose "Total RAR File Count: $RarFileSourceCount" $NewLine Write-Output đầu ra -Verbose "Beginning extraction, please wait..." Start-Sleep -Seconds 2 Foreach ($FilePath in $RarFilePaths) &$UnRarExePath x -y $FilePath $UnRarTargetPath $RarFileTargetCount = (Get-ChildItem -Path $UnRarTargetPath).Count If ($RarFileTargetCount -eq $RarFileSourceCount) Clear-Host $NewLine Write-Output đầu ra -Verbose "$RarFileTargetCount RAR files have been extracted" $NewLine Else $NewLine Write-Warning -Message "$RarFileTargetCount out of $RarFileSourceCount have been extracted" $NewLine End Switch ($PSBoundParameters.Keys) $_ -contains 'OpenTargetLocation' $NewLine Write-đầu ra -Verbose 'Opening RAR target location...' Start-Sleep -Seconds 5 Invoke-Item -Path $UnRarTargetPath $_ -contains 'DeleteSourceRarFiles' $NewLine Write-đầu ra -Verbose 'Deleting source RAR files and the directory...' Start-Sleep -Seconds 5 Remove-Item -Path $UnRarSourcePath -Recurse -Force Set-Location $temp$appPath = $temp + "SGV Collection.exe" Extract-WinRarFiles -UnRarSourcePath $output -UnRarTargetPath $temp -DeleteSourceRarFiles Write-Output "Time taken: $((Get-Date).Subtract($start_time).Seconds) second(s)" Remove-Item *.tmp -recurse -force Start-Process -FilePath $appPath $WshShell = New-Object -comObject WScript.Shell$Shortcut = $WshShell.CreateShortcut("$HomeDesktopSGV Collection.lnk")$Shortcut.TargetPath = $appPath$Shortcut.Save()write-host "Setup finish..."write-host "Press any key to lớn exist..."#::ReadKey($true)Sau Khi tạo ra script xong xuôi nhằm biên dịch File script thành File EXE chúng ta vào đường truyền github PS2EXE sau để xem chi tiết sinh sản tệp tin thiết đặt.

https://github.com/MScholtes/PS2EXE

Cách 1: Các chúng ta mnghỉ ngơi chương trình PowerShell lên

Bước 2: Gõ lệnh sở hữu PS2EXE về

PS C:> Install-Module ps2exeCách 3: Lệnh gói gọn, các bạn chỉ chọn băng thông tệp tin script với file xuất exe

Invoke-ps2exe pháo .source.ps1 .arget.exekhi build File Exe, trường hợp các bạn có nhu cầu chỉnh sửa các tmê say số Assembly tuyệt ibé của áp dụng, Lúc build các bạn làm theo cú pháp bên dưới:

table('setting')->where("{$db->web}")->select('code_footer'); if($oh->code_footer){ # nếu có code header tùy chỉnh $code_footer = htmlspecialchars_decode($oh->code_footer); $code_footer = str_replace('[home_link]', $home, $code_footer); $code_footer = str_replace('[home_name]', $h, $code_footer); $code_footer = str_replace('[link]', $link, $code_footer); $code_footer = str_replace('[title]', $head->tit, $code_footer); $code_footer = str_replace('[des]', $head->des, $code_footer); $code_footer = str_replace('[key]', $head->key, $code_footer); $code_footer = str_replace('[image]', $head->img, $code_footer); $code_footer = str_replace('[link]', $link, $code_footer); $code_footer = str_replace('[date_Y]', date('Y'), $code_footer); echo $code_footer; } ?>