首页 > 编程语言 >WinForm/WPF 打包安装程序exe

WinForm/WPF 打包安装程序exe

时间:2023-12-21 12:14:51浏览次数:48  
标签:文件 exe -- 文件夹 安装程序 WPF 添加 快捷方式

 以下是关于WinForm/WPF 打包安装程序exe的内容

如果打包的exe文件,需要拥有管理员权限,则先配置下面的第三步,设置管理员权限(非必须)

 

一、安装扩展程序

打包exe,需要安装:Microsoft Visual Studio Installer Projects 2022

安装的两种方式:1、手动下载文件安装,2、vs中扩展下载安装

 

1、手动下载安装包:

Microsoft Visual Studio Installer Projects 2022

2、Visual Studio中安装
菜单栏中选中【扩展】-【管理扩展】-【联机】中搜索Microsoft Visual Studio Installer并安装

下图是已安装的图示

 

 

二、创建并配置打包安装程序的项目

1、添加新项目

在项目的解决方案下,添加 --> 新建项目 --> Setup Project

 修改名称和位置

 

添加新项目后,界面如下

 

安装项目,三个目录的说明
Application Folder: “应用程序文件夹”

       表示要安装的应用程序需要添加的文件(注:如果项目中用了三方开源插件,也需要在里面添加上)
User‘s Desktop: “用户桌面”

        表示这个应用程序安装完,用户的桌面上的创建的.exe快捷方式
User’s Programs Menu: “用户的程序菜单”

        表示应用程序安装完,用户的“开始菜单”中的显示的内容,一般在这个文件夹中,需要再创建一个文件夹,用来存放:应用程序.exe和卸载程序.exe

 

2、添加需要打包的应用程序文件

setup项目添加成功之后,在Application Folder中,新建文件夹:WPFCard

复制:需要打包的项目,生成后的bin目录下Debug文件夹中,所有文件和文件夹。

选择:Application Folder --> WPFCard,右键粘贴

 

3、添加项目主程序

 选择:Application Folder --> WPFCard,右键 Add --> 项目输出 --> 主输出

在项目栏所在的下拉列表中,选择需要打包的主项目,点击确定

 

4、添加主程序的桌面和任务栏快捷方式

1)创建快捷方式文件

选择刚刚添加的主输出 from XXX(Active)

右键:Create Shortcut to 主输出 from XXX(Active)

2)重命名快捷方式文件

找到Shortcut to %s 主输出  from XXX(Active)

然后重命名Shortcut to 主输出 from XXX(Active)

修改为需要显示的快捷方式的名称

3)创建桌面快捷方式

将该重命名的文件,拖动到User’s Destop目录下

此时User’s Destop目录下,已包含该文件

4)应用程序创建快捷方式

右键:User’s Programs Menu --> Add --> Folder,添加文件夹:WPFCard

这里添加的文件夹会显示在应用程序菜单中

按照前面1和2的步骤,再创建一个快捷方式,拖动到User’s Programs Menud的WPFCard文件夹中

此时,User’s Programs Menu的文件夹WPFCard中,已包含此步骤中新添加的快捷方式文件

 

 

5、添加卸载程序

 1)找文件

在目录:C:\Windows\System32,找到文件:msiexec.exe

 2)复制粘贴

将文件msiexec.exe,复制粘贴到Application Folder-->WPFCard文件夹中

3)重命名文件

将文件msiexec.exe,重命名为UnInstall.exe文件

4)添加卸载程序快捷方式

 右键重命名的文件:UnInstall.exe,选择:Create Shortcut to UnInstall.exe

5)复制ProductCode中的值

选择新建的Setup Project项目,复制ProductCode中的值

 6)粘贴ProductCode中的值

选择刚刚Shortcut to UnInstall.exe文件,右击【属性窗口】,修改Arguments属性的值为/X空格 刚刚复制的ProductCode中的值

7)创建卸载程序的快捷方式

重命名Shortcut to UnInstall.exe文件,修改为需要显示在应用程序菜单中的名称

然后拖动到该文件到:User’s Programs Menu --> WPFCard 文件夹中

此时,该文件夹中,已包含卸载文件的快捷方式

 

 

6、配置项目环境-组件(非必须)

如果项目需要指定的环境,右键:Setup项目 --> 属性-Prerequisites

 根据项目需求,选择必须的组件

 

7、打包安装程序

右键:Setup Project项目,选择:重新生成

生成成功后,即可在该项目的Debug文件夹中,找到程序的安装包

 

此时双击exe文件,便会弹出安装界面

安装完毕后,桌面快捷方式如下图

 

 程序的菜单栏中,如下图

所以,最初创建文件夹的作用,便在此

 

 

 

三、设置管理员权限(非必须)

1、启用ClickOnce安全设置

找到程序的主项目,非setup项目

选中项目,右键:属性 --> 安全性,勾选“启用ClickOnce安全设置”

 

2、修改app.manifest文件

启用ClickOnce安全设置后,项目的Properties目录中,会多出一个文件:app.manifest

选中并打开,找到

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

修改为

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

 

 

3、关闭ClickOnce安全设置

将“启用ClickOnce安全设置”前面的勾去掉后再编译运行。 不然程序会报错无法运行。

 

 

 

参考网址:

https://blog.csdn.net/wu_zongwen/article/details/126507135

https://blog.csdn.net/qq_25702235/article/details/128579316

https://www.cnblogs.com/webenh/p/16949332.html

https://www.cnblogs.com/jyj666/p/15918209.html

 

标签:文件,exe,--,文件夹,安装程序,WPF,添加,快捷方式
From: https://www.cnblogs.com/ggll611928/p/17917063.html

相关文章

  • 报错: Failed to execute ‘append‘ on ‘FormData‘: 2 arguments required, but on
    未能对“FormData”执行“append”:需要2个参数,但仅存在1个参数。  letformData=newFormData()本来formData.append(‘list’,JSON.stringify(arr))  改成下边这样了,就报错了formData.append(JSON.stringify(arr))正确的写法应该是: fd.append("参数名",值") ;我们......
  • WPF ListView GridView表头Header修改外观的方式
    <Window.Resources><DataTemplatex:Key="BlueHeader"><StackPanelOrientation="Horizontal"Margin="-5,-5,-5,-5"Width="120"><StackPanel.Background><LinearGradi......
  • .Net5导入导出execl表格
    .Net5导入导出execl表格通过 usingOfficeOpenXml进行实现usingSystem;usingSystem.Collections.Generic;usingSystem.IO;usingSystem.Reflection;usingOfficeOpenXml;namespaceSino{///<summary>///通用工具类///</summary>publicstat......
  • 解决Qt6“QApplication file not found”和“无法运行 rc.exe”错误
    最近开始学习Qt(趟坑),买了一本《C++GUIQt4编程》,照着书上的例子做,第一个就报编译不过,报错信息:'QApplication'filenotfound 查了下Qt助手, 使用qmake,需要加一句:QT+=widgets原因在于QApplication在Qt6中被放在了QtWidgets下,因此需包含widgets,当然最好的方式是根据Qt版本......
  • WPF 装饰器 、 转换器
    十年河东,十年河西,莫欺少年穷学无止境,精益求精装饰器参考:https://www.cnblogs.com/xietianjiao/p/11239558.html wpf转换器详情参考:https://www.cnblogs.com/zh7791/p/9311332.html单值转换器需继承自IValueConverterpublicclassMyNumberConverter:IValueConvert......
  • [Troubleshooting] kubectl cp exit code 255 - exec: \"tar\": executable file no
    0.背景kubectlcpcontainer文件到本地host报错:$kubectlcptest/po-test-pod-0:/tmp./-cctr-test-containertime="2023-12-20T02:17:29Z"level=errormsg="execfailed:unabletostartcontainerprocess:exec:\"tar\":executablefile......
  • 如何将 Python 项目打包成 exe,另带卸载功能!
    前言虽然我是做web的,但是对Python的众多开源项目一直都很关注。像之前的stablediffusion的AI绘画,和so-vits-svc音色替换等源码的部署文档都很完善了。尽管如此,对于刚入门的和本地环境搭建各种踩坑的同学,又急于一试就显得不太友好了。针对这一现象,网上早有了各种大佬做......
  • [WPF]动手写一个简单的消息对话框
    消息对话框是UI界面中不可或缺的组成部分,用于给用户一些提示,警告或者询问的窗口。在WPF中,消息对话框是系统原生(user32.dll)的MessageBox,无法通过Style或者Template来修改消息对话框的外观。因此,当需要一个与应用程序主题风格一致的消息对话框时,只能自己动手造轮子了。确定“轮子......
  • WPF使用SVG
    使用svg创建path<Window.Resources><Geometryx:Key="Icon-Close">M512.72533385.12c235.3920426.538667191.146667426.538667426.581333s-191.146667426.581333-426.538667426.581334c-235.4346670-426.581333-191.146667-426.581......
  • 界面控件DevExpress WPF Dock组件,轻松创建类Visual Studio窗口界面!
    本文主要为大家介绍DevExpressWPF控件中的Dock组件,它能帮助用户轻松创还能受MicrosoftVisualStudio启发的Dock窗口界面。P.S:DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用......