使用VisualStudio2022制作安裝包

總體介紹

解決方案里面需要有三個項目: Winform程序, Setup Project , 自定義配置項目(安裝程序類)
1, Winform程序 就是你要打包的程序
2, Setup Project 就是制作安裝包的
3, 自定義配置項目(安裝程序類): 一個命令行項目里面只有一個安裝程序類,用來控制安裝后自動打開程序( 沒有需求可以不要 )

一, 最簡教程

1, 安裝擴展

選擇 擴展–>管理擴展–>聯機 (或者選擇 工具–>擴展和更新–>聯機),搜索Microsoft Visual Studio Installer Projects,進行安裝,安裝好之后,重啟vs(一定要重啟)

2, 新建項目

選擇 Setup Project 模板新建打包項目, 例如Setup1

3, 添加需要打包的項目

右鍵Setup1項目–> Add --> 項目輸出 (一般會自動選中目標項目) --> 確定

4, 測試

"生成"沒有報錯后, 右鍵Setup1項目–>安裝, 測試沒問題就可以了

二, 安裝配置

以安裝后啟動exe文件舉例:
新建命令行項目, 右鍵項目–>添加–>新建項–>安裝程序類, 修改代碼如下:

// 安裝后啟動exe文件舉例
[RunInstaller(true)]
public partial class Installer1 : System.Configuration.Install.Installer
{public Installer1(){InitializeComponent();}protected override void OnBeforeInstall(IDictionary savedState){Console.WriteLine("安裝開始, 這里的代碼用于測試和驗證");string dir = "C://公司";if (!System.IO.Directory.Exists(dir)){Directory.CreateDirectory(dir);}}protected override void OnAfterInstall(IDictionary savedState){// 設置要打開的exe文件的路徑string exePath = "C:\\公司\\產品\\APP.exe";// 安裝后啟動exe文件Process.Start(exePath);Console.WriteLine("安裝結束");string dir = "C://公司//Success";if (!System.IO.Directory.Exists(dir)){Directory.CreateDirectory(dir);}}
}

這樣就可以了, 生成exe, 在Setup->Add->文件, 把exe加進來
在右鍵項目->View–>自定義操作–>install–>右鍵"添加自定義操作", 選中剛剛加入的exe, 即可
安裝的時候會自動執行Installer1里面的代碼

三, 其他常見配置

直接修改Setup1.vdproj 文件

有一些配置在VS里面不好設置, 直接修改 Setup Project的項目主文件: xxxxx.vdproj
以我的項目舉例: 用記事本打開 Setup1.vdproj 文件 , 搜索需要配置的項目進行修改

// 修改產品名: 就是在安裝對話框里面顯示的產品的名字
"ProductName" = "8:xxxxx"// 修改公司名稱:
"Manufacturer" = "8:xxxxxxx"// 修改程序的默認安裝路徑, 例如安裝到C盤根目錄
"DefaultLocation" = "8:C:\\[Manufacturer]\\[ProductName]"// 修改默認為所有用戶安裝 :
"InstallAllUsers" = "11:TRUE"// 安裝包需要以管理員權限運行 :  例如要修改注冊表的時候
"RequiresElevation" = "11:TRUE"

添加桌面快捷方式

右鍵"主輸出",創建一個快捷方式, 再把快捷方式拖動到 “User’s Desktop” 里面, 改個名字
在這里插入圖片描述

注冊DLL

有些dll需要注冊
手動的命令類似這樣: regsvr32 D:\grdes6.dll
這里可以設置安裝時自動注冊:
先把dll添加進來(Add->文件), 右鍵添加進來的dll設置“Register”屬性為“vsdrfCOMSelfReg”。

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

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

相關文章

Windows USB設備驅動開發 - 常見概念的解釋

我們聽到許多 USB 術語幾乎交替拋出。 它們都是什么意思?假設我們看到類似 “多虧了 USB 3.0,我可以將 SuperSpeed U 盤連接到電腦的 xHCI 主機控制器,并更快地復制文件。” 讓我們了解該句子中的 USB 術語。 USB 3.0、USB 2.0 和 USB 1.0 請…

Winform 樹形控件的開發實戰

在Windows Forms(WinForms)開發中,樹形控件(TreeView)是非常常用的一種控件,用于展示層級結構的數據,如文件系統、組織結構、菜單等。下面,我將通過一個實戰示例,向你展示如何在WinForms中開發和…

計網實訓——不相同網段的PC相互通信

目錄 提前準備APP路由器指令 實驗一1、實驗需求(1)實現同網段的PC相互通信。(2)實現不相同網段的PC相互通信。(3)分析相同和不同網段PC通信時MAC地址的變化。 2、實驗拓撲3、實驗步驟及實驗截圖&#xff08…

rk3588 debian系統配置AP6275S ap模式

rk3588 debian配置AP6275S ap模式 文章目錄 rk3588 debian配置AP6275S ap模式前言一、內置開啟ap模式的系統工具1.1、內置hostapd工具1.2、內置dhcp工具二、熱點配置2.1、 /etc/hostapd/hostapd.conf 配置2.2、/etc/dhcp/dhcpd.conf 配置三、測試3.1、運行dhcpd3.2、運行hostap…

[數據結構】——七種常見排序

文章目錄 前言 一.冒泡排序二.選擇排序三.插入排序四.希爾排序五.堆排序六.快速排序hoare挖坑法前后指針快排遞歸實現:快排非遞歸實現: 七、歸并排序歸并遞歸實現:歸并非遞歸實現: 八、各個排序的對比圖 前言 排序:所謂…

uni-app 微信小程序開發到發布流程

1. uni-app 微信小程序開發到發布流程 1.1. 新建一個uni-app 項目 1.2. 發行微信小程序 1.3. 微信開發者平臺的微信小程序appid 復制進來(點擊發行) 1.4. IDE may already started at port xxxx, trying to connect (1)關閉微信…

小白上手AIGC-基于FC部署stable-diffusion

AIGC AIGC(人工智能創造內容)作為一種基于人工智能技術生成內容的新型創作模式。打破了過去大家對于AI的理解都是說只能涉足部分領域而無法涉足藝術或者是其他的創作領域的定律,現在的AIGC也能夠創作內容了,而不再只是單純的返回…

動手學深度學習(Pytorch版)代碼實踐 -計算機視覺-45多尺度目標檢測

45多尺度目標檢測 # 多尺度錨框 """ 減少圖像上的錨框數量并不困難。 比如,我們可以在輸入圖像中均勻采樣一小部分像素, 并以它們為中心生成錨框。 此外,在不同尺度下,我們可以生成不同數量和不同大小的錨框。 直…

Apifox 更新|定時任務、內網自部署服務器運行接口定時導入、數據庫 SSH 隧道連接

Apifox 新版本上線啦! 看看本次版本更新主要涵蓋的重點內容,有沒有你所關注的功能特性: 自動化測試支持設置「定時任務」支持內網自部署服務器運行「定時導入」數據庫均支持通過 SSH 隧道連接自動化測試數據庫操作優化 1、自動化測試支持設…

C++ 100 之 容器插入和刪除

vector插入和刪除操作 insert(const_iterator pos, int count,ele);//迭代器指向位置pos插入count個元素ele. push_back(ele); //尾部插入元素ele pop_back();//刪除最后一個元素 erase(const_iterator start, const_iterator end);//刪除迭代器從start到end之間的元素 erase(c…

Mac(M1芯片)安裝多個jdk,Mac卸載jdk

1.jdk下載 oracle官方鏈接:oracle官方下載鏈接 2.安裝 直接下一步,下一步就行 3.查看是否安裝成功 出現下圖內容表示安裝成功。 4.配置環境變量 open -e .bash_profile 路徑建議復制過去 #刷新環境變量 source ~/.bash_profile 5.切換方法 6.jdk…

企業應該如果安全上網,軟件防查盜版,企業防盜版

隨著信息化的發展,企業日常辦公越來越依賴互聯網。終端以及普通PC終端在訪問互聯網過程中,會遇到各種各樣不容忽視的風險,例如員工主動故意的數據泄漏,后臺應用程序偷偷向外部發信息,木馬間諜軟件的外聯,以…

Spring Boot 過濾器和攔截器詳解

目錄 Spring Boot 過濾器1.什么是過濾器2.工作機制3.實現過濾器 Spring Boot 攔截器1. 什么是攔截器2. 工作原理3.實現4.拓展(MethodInterceptor 攔截器)實現 過濾器和攔截器區別過濾器和攔截器應用場景過濾器攔截器 Spring Boot 過濾器 1.什么是過濾器 …

信創認證 | Smartbi Insight V11成功適配申威3231處理器

在信息技術飛速發展的浪潮中,軟硬件的深度融合與協同發展已成為推動行業創新的關鍵因素。 近日,思邁特商業智能與數據分析軟件[簡稱:Smartbi Insight]V11在統信服務器操作系統V20和中電科申泰信息科技有限公司產品申威3231處理器環境下完成適…

日本職場跳槽漲薪調查報告!原來薪資漲幅的秘訣在這!

看到篇帖子,日本職場跳槽的調查報告: 文章中根據日本大型求職網站doda,通過分析網站注冊會員的數據以及職業顧問的解說,來了解一下跳槽實現工資提升的人基本情況以及趨勢。 本次調查對象跳槽后平均年收入提升了906,274日元&#…

Python 語法基礎一

1.變量 python 中變量很簡單,不需要指定數據類型,直接使用等號定義就好。python變量里面存的是內存地址,也就是這個值存在內存里面的哪個地方,如果再把這個變量賦值給另一個變量,新的變量通過之前那個變量知道那個變量…

《昇思25天學習打卡營第10天 | 昇思MindSporeFCN圖像語義分割》

第10天 本節學習了FCN圖像語義分割。全卷積網絡是用于圖像語義分割的一種框架。FCN是首個端到端(end to end)進行像素級(pixel level)預測的全卷積網絡。FCN有兩大明顯的優點:一是可以接受任意大小的輸入圖像&#xff…

【滲透工具】內網多級代理工具Venom詳細使用教程

免責申明 本公眾號的技術文章僅供參考,此文所提供的信息只為網絡安全人員對自己所負責的網站、服務器等(包括但不限于)進行檢測或維護參考,未經授權請勿利用文章中的技術資料對任何計算機系統進行入侵操作。利用此文所提供的信息…

【LeetCode】九、雙指針算法:環形鏈表檢測 + 救生艇

文章目錄 1、雙指針算法1.1 對撞雙指針1.2 快慢雙指針 2、leetcode141:環形鏈表3、leetcode881:救生艇 1、雙指針算法 用兩個指針來共同解決一個問題: 1.1 對撞雙指針 比如先有一個有序的數組array int[] array {1, 4, 5, 7, 9}先要找兩個…

什么是產線工控安全,如何保障產線設備的安全

什么是產線工控安全? 工控,指的是工業自動化控制,主要利用電子電氣、機械、軟件組合實現。即是工業控制系統,或者是工廠自動化控制。產線工控安全指的是工業控制系統的數據、網絡和系統安全。隨著工業信息化的迅猛發展&#xff0…