Visual Studio 2017 - Windows應用程式打包成exe文件(1)- 工具簡單總結

来源:https://www.cnblogs.com/AlienXu/archive/2018/04/27/8964005.html
-Advertisement-
Play Games

最近有對一個Windows應用程式少許維護和修改。修改之後要發佈新的exe安裝文件,打包exe文件時,遇到了很頭疼的問題,還好最後解決了,記錄一下。 Visual Studio版本:Visual Studio 2017 <! more Visual Studio 2017 打包插件 新建項目 其他項 ...


最近有對一個Windows應用程式少許維護和修改。修改之後要發佈新的exe安裝文件,打包exe文件時,遇到了很頭疼的問題,還好最後解決了,記錄一下。

Visual Studio版本:Visual Studio 2017

Visual Studio 2017 打包插件

新建項目->其他項目類型->Visual Studio Installer->Setup Project
這裡寫圖片描述
如果其他項目類型中沒有選項(Visual Studio Installer),點擊“工具”,選擇“拓展和更新”,點擊聯機,搜索“Microsoft Visual Studio 2017 Installer Projects”,安裝該插件。
這裡寫圖片描述

選擇主輸出

新建項目之後,預設自動打開File System,右鍵點擊Application Folder,添加輸出,選擇主輸出
這裡寫圖片描述

創建快捷圖標

右鍵點擊“主輸出 from xxx”,選擇“Create ShortCut to 主輸出 from xxx”,新增快捷方式,可以重新命名。選擇快捷方式,左鍵長按拖動至User's Desktop
這裡寫圖片描述
右鍵點擊快捷方式,選擇屬性視窗
這裡寫圖片描述
可自選快捷方式的顯示圖標icon
這裡寫圖片描述

自定義操作

右鍵點擊項目
這裡寫圖片描述
如果該項目由必選的驅動需要安裝,可以將該驅動安裝exe文件添加到Application Folder中,選擇添加“自定義操作”,選擇該驅動安裝文件,會在執行文件時,調用驅動的安裝。
這裡寫圖片描述

插件的好處和缺陷

好處:Visual Studio 2017自帶插件,使用方便,比下載安裝其他打包軟體要方便的多。
缺陷:(下述缺陷很可能是因為,我沒有弄清楚該插件的深入使用方法)

  1. 驅動安裝流程執行結束之後,無法繼續主安裝流程。
  2. 無法將所需framework環境打包進exe文件。

打包.NET Framework環境

生成的時候,報錯,點擊提示的報錯,跳轉至微軟官網如何:創建本地化的引導程式包
看文檔看半天並不能解決。搜索了很久,終於找到一篇文章【C#】vs2017 發佈工具 Visual Studio Installer 發佈包遇到的問題處理經驗
按照該文章的方式找到路徑:
C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX461
將下載的文件NDP461-KB3102436-x86-x64-AllOS-ENU.exe複製到該路徑下。
最後雖然能生成成功,但是並不是我想要的打包成一個exe文件,很顯然,可能需要對插件更瞭解吧,我是沒找到解決辦法。

InstallShield

官網
又是一番折騰,下載安裝,InstallShield安裝包不小,下載和安裝的時間花費不短。
參照使用InstallShield打包windriver驅動
下載地址:InstallShield 2018(軟體打包工具)
很不幸,證書是2016的,不是2018的,最後打包的時候會出現報錯:Failed to verify digital signature of IsUiServices.dll
報錯類似: InstallShield 2015 錯誤 Failed to verify digital signature of IsUiServices.dll

InstallShield 的優點和缺點

功能強大是優點,也是缺點,因為功能強大也意味著操作複雜。

Inno Setup

官網
Inno Setup操作簡單,最後會生成一個尾碼iss的腳本文件。
可以自己寫function。對我來說,可能會更喜歡GUI操作。Advanced Installer閃亮登場。

Advanced Installer

下一篇文章著重介紹Advanced Installer,非常好用,推薦指數五星。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 什麼是模塊? 常見的場景:一個模塊就是一個包含了python定義和聲明的文件,文件名就是模塊名字加上.py的尾碼。 但其實import載入的模塊分為四個通用類別:    1 使用python編寫的代碼(.py文件)   2 已被編譯為共用庫或DLL的C或C++擴展   3 包好一組模塊的包   4 ... ...
  • 面向對象和麵向過程 二者都是一種思想,面向對象是面向過程而言的,面向過程,強調的是功能行為,面向對象,將功能封裝進對象,強調具備功能的對象 面向對象更加強調運用人類在日期的思維方式 面向對象的三大特征:封裝、集成、多態 ...
  • JDBC學習 "1. 概述" "2. 相關介面" "3. 連接資料庫" "4. 資源釋放" "5. 工具類抽取" "6. 數據操作" "7. 資料庫連接池" 1. 概述 JDBC是Java連接資料庫的一個API。它允許用戶訪問任何形式的表格數據,尤其是存儲在關係資料庫中的數據。 1.1 載入驅動包: ...
  • 最簡單的回聲伺服器: 原理: 1.io.Copy()方法func Copy(dst Writer, src Reader) (written int64, err error) 2.net.Conn類型type Conn interface { Read(b []byte) (n int, err ...
  • 前言 本篇文章主要講述的是 SpringBoot 整合 Mybatis 、 Druid 和 PageHelper 並實現多數據源和分頁。其中SpringBoot整合Mybatis這塊,在之前的的 "一篇文章" 中已經講述了,這裡就不過多說明瞭。重點是講述在多數據源下的如何配置使用Druid和Page ...
  • 今天遇到一個問題,暫時想不通,趁熱先記下 000:101001:102002:103003:104004:105005:106006:107007:108008:109009:110 000:110001:110002:110003:110004:110005:110006:110007:11000 ...
  • numpy.random.choice(a, size=None, replace=True, p=None) 從給定的一維數組或整數中生成隨機樣本 a 一維數組或整數 size 生成樣本的大小 replace bool類型 False表示樣本中不允許有重覆值 True...... p 給定數組中元 ...
  • Entity Framework簡介 Entity Framework的全稱為 ADO.NET Entity Framework ,簡稱為EF, 是微軟以ADO.NET為基礎發展出來的實體框架,早期被稱為ObjectSpace. 除了EF之外,daoNet平臺下還有許多的ORM框架:Nibernat ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...