利用Microsoft Visual Studio Installer Projects打包安裝包

利用Microsoft Visual Studio Installer Projects打包安裝包

  • 具體步驟
    • 步驟1:安裝擴展
    • 步驟2:創建 Setup 項目
    • 步驟3:設置屬性
    • 步驟4:添加輸出
    • 步驟5:添加文件
    • 步驟6:添加桌面快捷方式
    • 步驟7:添加菜單快捷方式
    • 步驟8:添加卸載程序快捷方式
    • 步驟9:生成安裝包

此篇博客將說明如何利用Visual Studio上的Microsoft Visual Studio Installer Projects擴展打包安裝包。

具體步驟

步驟1:安裝擴展

在Visual Studio中點擊 擴展 -> 管理擴展 -> 聯機 -> 搜索Microsoft Visual Studio Installer Projects -> 下載,最終安裝好如圖
在這里插入圖片描述

步驟2:創建 Setup 項目

右鍵點擊解決方案,添加Setup Project新項目,如圖
在這里插入圖片描述
在這里插入圖片描述

步驟3:設置屬性

成功創建好如下圖,會生成三個路徑:Application Folder用于包含目標項目編譯后的文件,如dll、腳本等,便于在打包時壓縮文件、安裝時解壓文件;User’s Desktop 主要是指用戶桌面,可以在此處添加桌面快捷方式;User’s Programs Menu 主要是指用戶菜單,可以在此處添加菜單快捷方式。
在這里插入圖片描述
之后, 可根據軟件需求,在 解決方案資源管理器 處設置項目對應屬性,如圖
在這里插入圖片描述

步驟4:添加輸出

右鍵點擊Application Folder -> Add -> 項目輸出,如圖
在這里插入圖片描述
在這里插入圖片描述

步驟5:添加文件

由于Application Folder 添加項目輸出時,只會識別dll,如下圖,因此若未將所有文件載入時,需手動添加。在下圖中,其并未將目標WPF項目MRISoftwareDelpoyPlatform中的Scripts文件夾加載進Application Folder。
在這里插入圖片描述
針對上述問題,可右鍵點擊Application Folder -> Add -> Folder,修改名稱為Scripts,之后右鍵點擊該文件夾 -> Add -> 文件,在彈出窗口下選擇合適路徑,文件添加成功后,如下圖
在這里插入圖片描述
最終文件添加成功之后,整個Application Folder 下的文件如下圖
在這里插入圖片描述

步驟6:添加桌面快捷方式

右鍵點擊主輸出 -> Create Shortcut… ,然后根據需求修改快捷方式名稱,添加成功后如圖所示,此處快捷方式名稱為MRISoftwareDelpoyPlatform
在這里插入圖片描述
之后將快捷方式剪切復制進 User’s Desktop 中,便可在安裝后自動創建桌面快捷方式。如圖
在這里插入圖片描述
現對快捷方式添加圖標,首先在Application Folder中添加ico文件,然后按照下圖中順序最后點擊ok即可
在這里插入圖片描述

步驟7:添加菜單快捷方式

為了便于顯示菜單快捷方式與卸載快捷方式,需要在 User‘s Program 下添加文件夾,這步操作已在步驟6中實現。先添加菜單快捷方式,并為其添加圖標,步驟與桌面快捷方式類似,添加成功后如圖
在這里插入圖片描述

步驟8:添加卸載程序快捷方式

此步驟非必須,可根據需求進行添加。若需添加Uninstall.exe,則 右擊 Application Folder ->Add -> 文件,找到 C:/Windows/System32下的msiexec.exe,重命名為UnInstall,成功之后如圖
在這里插入圖片描述
為了實現Uninstall.exe對目標安裝軟件進行卸載,需做如下處理:點擊項目(此處為MRIDPSetup) -> 復制屬性頁面中ProductCode的值,此數據為該項目獨有的GUID號 -> 右鍵點擊Uninstall.exe -> Create Shortcut … -> 修改快捷方式的名稱 -> 將ProductCode按照 “/X {xxxxxx-Your-Product-GUID-xxxx-xxx-xxxx}” 格式填充至快捷方式屬性界面的 Arguments -> 將快捷方式剪切粘貼至 User‘s Program Menu/MRISoftwareDeployPlatform中即可,成功后如圖
在這里插入圖片描述

步驟9:生成安裝包

右鍵點擊項目 -> 生成, 最后生成的安裝包如圖,其中setup.exe 是一個引導程序,負責啟動安裝過程并調用實際的安裝文件 .msi 來完成安裝,也可直接雙擊.msi文件進行安裝。若有其他需求,如升級時無需卸載舊包直接覆蓋升級,可點擊 博客 進行查閱。
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/212918.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/212918.shtml
英文地址,請注明出處:http://en.pswp.cn/news/212918.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Table/SQL Api】Flink Table/SQL Api表轉流讀取MySQL

引入依賴 jdbc依賴 flink-connector-jdbc mysql-jdbc-driver 操作mysql數據庫 <!-- Flink-Connector-Jdbc --><dependency><groupId>org.apache.flink</groupId><artifactId>flink-connector-jdbc_${scala.binary.version}</artifactId>…

Ubuntu上安裝 Git

在 Ubuntu 上安裝 Git 可以通過包管理器 apt 進行。以下是在 Ubuntu 上安裝 Git 的步驟&#xff1a; 打開終端。你可以按 Ctrl Alt T 組合鍵來打開終端。 運行以下命令以確保你的系統的軟件包列表是最新的&#xff1a; sudo apt update 安裝 Git&#xff1a; sudo apt inst…

RT-DERT改進策略:AKConv即插即用,輕松漲點

摘要 提出了一種算法&#xff0c;用于生成任意尺寸卷積核的初始采樣坐標。與常規卷積核相比&#xff0c;提出的AKConv實現了不規則卷積核的函數來提取特征&#xff0c;為各種變化目標提供具有任意采樣形狀和尺寸的卷積核&#xff0c;彌補了常規卷積的不足。在COCO2017和VisDro…

Anaconda文件目錄(打開默認路徑)更改

Anaconda 文件默認目錄更改 每次打開 Anaconda 都在C盤怎么辦&#xff0c;如何改為D盤或是其他盤符位置&#xff1f; 可以進行下述操作。 1. 單次修改路徑 單次修改路徑&#xff1a;在 exe 文件(Anaconda Prompt (Anaconda_py))中寫入下面代碼&#xff1a; jupyter notebook …

STM32 標準外設SPL庫、硬件抽象層HAL庫、低層LL庫區別?

1、STM32 之一 HAL庫、標準外設庫、LL庫_ZCShou的博客-CSDN博客_ll庫&#xff08;仔細閱讀&#xff09; 2、STM32標準外設庫、 HAL庫、LL庫 - King先生 - 博客園 3、STM32 之 HAL庫_戈 揚的博客&#xff08;仔細閱讀&#xff09; 4、STM32 LL 為什么比 HAL 高效&#xff1…

MAC下加載動態庫

MAC引用動態庫時報錯&#xff1a; 查看一個可執行文件或者動態庫引用的第三方庫路徑&#xff1a;otool -L xxx.dylib 第一行是動態庫的安裝名稱&#xff08;INSTALL Name&#xff09;。當另一個客戶端鏈接到這個 dylib 時&#xff0c;dylib 的安裝 ID 會被復制到客戶端中作為…

selenium庫的使用

來都來了給我點個贊收藏一下再走唄&#x1f339;&#x1f339;&#x1f339;&#x1f339;&#x1f339; 目錄 一、下載需要用到的python庫selenium 二、selenium的基本使用 1.在python代碼引入庫 2.打開瀏覽器 3.元素定位 1&#xff09;通過id定位 2&#xff09;通過標…

一文掌握Ascend C孿生調試

1 What&#xff0c;什么是孿生調試 Ascend C提供孿生調試方法&#xff0c;即CPU域模擬NPU域的行為&#xff0c;相同的算子代碼可以在CPU域調試精度&#xff0c;NPU域調試性能。孿生調試的整體方案如下&#xff1a;開發者通過調用Ascend C類庫編寫Ascend C算子kernel側源碼&am…

Spring boot 發送郵箱

一、簡介 Spring 提供了非常好用的 JavaMailSender 接口實現郵件發送。在 SpringBoot 的 Starter 模塊中也為此提供了自動化配置。下面通過實例看看如何在 SpringBoot 中使用 JavaMailSender 發送郵件。 org.springframework.mail 是Spring Framework對郵件支持的基礎包&#x…

云計算大屏,可視化云計算分析平臺(云實時數據大屏PSD源文件)

大屏組件可以讓UI設計師的工作更加便捷&#xff0c;使其更高效快速的完成設計任務。現分享可視化云分析系統、可視化云計算分析平臺、云實時數據大屏的大屏Photoshop源文件&#xff0c;開箱即用&#xff01; 若需 更多行業 相關的大屏&#xff0c;請移步小7的另一篇文章&#…

mapstruct個人學習記錄

mapstruct核心技術學習 簡介入門案例maven依賴 IDEA插件單一對象轉換測試結果 mapping屬性Spring注入的方式測試 集合的映射set類型的映射測試map類型的映射測試 MapMappingkeyDateFormatvalueDateFormat 枚舉映射基礎入門 簡介 在工作中&#xff0c;我們經常要進行各種對象之…

非標識性參數—手機運營商

2.2 非標識性參數 2.2.1 手機運營商 IMSI&#xff1a; 國際移動用戶識別碼&#xff0c;共有15位&#xff0c;儲存在SIM卡中&#xff0c;由MCC、MNC&#xff0c;MSIN組成。 MCC&#xff1a; (國家)移動國家號碼&#xff0c;由3位數字組成&#xff0c;唯一的識別移動客戶所屬的…

【rabbitMQ】rabbitMQ用戶,虛擬機地址(添加,修改,刪除操作)

rabbitMQ的下載&#xff0c;安裝和配置 https://blog.csdn.net/m0_67930426/article/details/134892759?spm1001.2014.3001.5502 rabbitMQ控制臺模擬收發消息 https://blog.csdn.net/m0_67930426/article/details/134904365?spm1001.2014.3001.5502 目錄 用戶 添加用戶…

MyBatis 四大核心組件之 StatementHandler 源碼解析

&#x1f680; 作者主頁&#xff1a; 有來技術 &#x1f525; 開源項目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 倉庫主頁&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 歡迎點贊…

CPU設計——Triumphcore——MP_work版本

該版本用作系統寄存器的實現&#xff0c;M/S/U狀態的實現與切換&#xff0c;以及load/store的虛實地址轉換 設計指標 2023.12.8 2023.12.9 不實現mideleg和medeleg&#xff0c;因此一旦出現異常&#xff0c;直接切換至M態&#xff0c; 調試記錄 到存儲區中取PTE要額外至少…

airserver mac 7.27官方破解版2024最新安裝激活圖文教程

airserver mac 7.27官方破解版是一款好用的airplay投屏工具&#xff0c;可以輕松將ios熒幕鏡像&#xff08;airplay&#xff09;至mac上&#xff0c;在mac平臺上實現視頻、音頻、幻燈片等文件資源的接收及投放演示操作&#xff0c;解決iphone或ipad的屏幕錄像問題&#xff0c;滿…

SpringBootAdmin設置郵件通知

如果你想要在Spring Boot Admin中配置郵件通知&#xff0c;可以按照以下步驟進行操作&#xff1a; 添加郵件通知的依賴 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId> </dep…

Linux C/C++ 從內存轉儲中恢復64位ELF可執行文件

ELF&#xff08;Executable and Linking Format&#xff09;是一種對象文件的格式&#xff0c;它主要用于定義ELF&#xff08;Executable and Linking Format&#xff09;是一種對象文件的格式&#xff0c;它主要用于定義不同類型的對象文件中的內容以及它們的存儲方式。一個EL…

作業調度算法(含詳細計算過程)和進程調度算法淺析

一.作業調度 作業調度算法需要知道以下公式 周轉時間完成時間 - 到達時間 帶權周轉時間周轉時間/運行時間 注&#xff1a;帶權周轉時間越大&#xff0c;作業&#xff08;或進程&#xff09;越短&#xff1b;帶權周轉時間越小&#xff0c;作業&#xff08;或進程&#xff09;越…

[git] 遠程刪除分支

[git] 遠程刪除分支 1. git刪除遠程分支 git push origin --delete [branch_name]2. 刪除本地分支區別 git branch -d 會在刪除前檢查merge狀態&#xff08;其與上游分支或者與head&#xff09;。git branch -D 是git branch --delete --force的簡寫&#xff0c;它會直接刪除…