ĐÓNG GÓI PHẦN MỀM THÀNH FILE EXE

Xin kính chào các bạn, nội dung bài viết từ bây giờ mình sẽ trả lời các bạn đóng gói phần mềm thành file cài đặt installer áp dụng script PowerShell.

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

Sau lúc chúng ta viết kết thúc ứng dụng trên Winkhung, các bạn cần phải gói gọn phần mềm thành file thiết lập.

Bình thường xuyên, những bạn sẽ sử dụng phần mềm: Advance Installer, One Cliông chồng Install hay Installshield...

Trong nội dung bài viết này mình đang khuyên bảo các bạn gói gọn vận dụng tool nhỏ tuổi thiết lập áp dụng script PowerShell.

Lợi ích của vấn đề gói gọn này là tệp tin thiết lập của chúng ta khoảng chừng 300MB (nếu bạn nào code bằng Devexpress thì đã thấy dung tích vô cùng nhiều).

Khi thiết đặt build thì file Exe bọn họ chỉ từ khoảng tầm trung bình 300KB, góp bọn họ thuận tiện phân tách sẽ.

Xem thêm: Xem Tử Vi 2017 Cho Tuổi Giáp Tý 1984, Tử Vi 2017 Của Tuổi Giáp Tý 1984 Nữ Mạng

Nhược điểm: Muốn cài đặt cần tất cả mạng mạng internet.

Các chúng ta có thể mlàm việc công tác Powershell ISE, để code script

*

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

Bước 1: Nén File vận dụng nghỉ ngơi thỏng mục Release lên hosting website của các bạn

Và khi chạy Script setup bọn họ sẽ tiến hành quá trình các bước sau:

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

Cách 3: Giải nén file rar vào thư mục họ chỉ định

Bước 4: Xóa File rar họ vẫn cài về

Cách 5: Chạy msinh hoạt áp dụng lên

Bước 6: Tạo shortcut phần mềm trước Desktop.

Script bản thân viết cũng dễ dàng 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ọ sẽ sử dụng PS2EXE => đưa file script thành tệp tin EXE

Video thử nghiệm ứng dụng sinh sản sau khoản thời gian chế tạo tệp tin cài đặ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 phần mềm Powershell - https://neftekumsk.com"Add-Type -AssemblyName System.Windows.Forms$browser = New-Object System.Windows.Forms.FolderBrowserDialog$browser.Description = "quý khách hàng Hãy chọn tlỗi mục thiết lập phần mềm"$null = $browser.ShowDialog()$temp = $browser.SelectedPathWrite-Output $temp$url = "https://neftekumsk.com/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 thiết lập $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 cài phần mềm 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-Webfile $urlWrite-đầ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 $NewLine = "`r`n" $RarFilePaths = (Get-ChildItem -Path $UnRarSourcePath -Recurse Process $NewLine Write-Output -Verbose "Total RAR File Count: $RarFileSourceCount" $NewLine Write-đầ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-đầu ra -Verbose "$RarFileTargetCount RAR files have been extracted" $NewLine Else $NewLine Write-Warning -Message "$RarFileTargetCount out of $RarFileSourceCount have sầu been extracted" $NewLine End Switch ($PSBoundParameters.Keys) $_ -contains 'OpenTargetLocation' $NewLine Write-Output đầ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 và 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 exist..."#::ReadKey($true)Sau khi tạo ra script ngừng nhằm biên dịch File script thành File EXE chúng ta vào băng thông github PS2EXE sau giúp thấy chi tiết tạo thành file setup.

https://github.com/MScholtes/PS2EXE

Bước 1: Các bạn mnghỉ ngơi chương trình PowerShell lên

Bước 2: Gõ lệnh cài đặt PS2EXE về

PS C:> Install-Module ps2exeCách 3: Lệnh đóng gói, chúng ta chỉ lựa chọn băng thông tệp tin script và tệp tin xuất exe

Invoke-ps2exe .source.ps1 .arget.exeLúc build File Exe pháo, giả dụ những bạn có nhu cầu chỉnh sửa các tmê mẩn số Assembly tốt icon của vận dụng, lúc build chúng ta tuân theo cú pháp bên dưới: