【C#】【winform】Microsoft Visual Studio Installer Project 打包应用程序全部过程

提示:只针对扩展包来完成打包的工作过程。

文章目录


前言

在做完C#和winform的开发,完成之后,需要做一些打包的工具,在这个过程中遇到一些问题,所以记录下我的操作过程和遇到的异常情况。


一、Microsoft Visual Studio Installer Project 是什么?

支持快速打包的插件扩展

二、安装

1.安装Microsoft Visual Studio Installer Project

在扩展--->搜搜 Microsoft Visual Studio Installer Project,安装,然后等待下载完成,完成之后关闭Visual Studio,等待一会会自动弹出界面安装完成该扩展

三、安开始打包

1.添加setup

1.在解决方案上面右键,添加-新建项目

2.搜索setup,如图选择setup project,一直下一步,最后会在解决方案管理器里面生成一个setup样式的文件如图:


3.这边就可以开始配置打包的相关功能

1.在setup项目上面右键->view->文件系统
  • 1.Application Folder:软件的文件等,可以在这个下面导入文件或者是文件夹内容。
  • 2.Users Desktop:桌面,可以设置在桌面的快捷按键工。
  • 3.剩下的那个是在菜单栏里面的快捷方式,同时可以设置图标
2.Application Folder上面右键-->add-->项目输出,选择主输出,确定,右边会生成文件
3.制作应用的快捷按键和图标

Application Folder里面找到主输出相关字样,右键,创建快捷方式,如图,在产生的快捷方式右键剪切,复制到Users Desktop

如图,选择复制过来的快捷方式,查看属性 :可以变更里面的name:快捷按键的名字,icon,可以选择图标,需要是.con格式的(.icon的分辨率不能太大,建议是128,或者64*64,太大了可能就不显示了

然后用同样的操作复制快捷方式到user programs menu里面,同样操作。后面就可以在任务栏显示出来该软件的快捷方式和图标

三.打包生成

在setup项目上面右键,可以生成或者是重新生成,生成成功之后,可以选择安装,那么就可以安装该软件到电脑上面,卸载会卸载该软件,在文件资源管理器...打开可以看到软件,是一个exce和msi.安装需要这两个都存在。

四.可能遇到的问题

1.在安装的界面,有更加细节的功能添加,比如在安装界面可以输入相关数据,然后,软件可以获取到输入的这些数据,比如lience的作用等。可以在view-自定义操作里面操作。
2.出现有些功能不能正常的使用,需要管理员权限才能使用的情况

解决的办法:在App_All 右键,属性-安全性-启用clickOnce,这个时候会新增到一个文件

找到:

复制代码
<requestedExecutionLevel level="asInvoker" uiAccess="false" />

替换为:
 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

保存之后,在到属性里面去除勾选clickOnce;


然后重新生成打包,就可以用管理员的权限来运行打包生成的软件。

总结

打包总的来说还不是很难的一个过程,但是还是需要很多地方去了解和技术和知识的累积。

相关推荐
游乐码16 分钟前
c#ArrayList
开发语言·c#
彧翎Pro25 分钟前
ASP.NET Core 外部依赖调用治理实战:HttpClientFactory、Polly 与幂等边界
microsoft·asp.net·php
唐青枫1 小时前
C#.NET Monitor 与 Mutex 深入解析:进程内同步、跨进程互斥与使用边界
c#·.net
周杰伦fans1 小时前
cad文件选项卡不见了怎么办?
c#
llm大模型算法工程师weng2 小时前
Python敏感词检测方案详解
开发语言·python·c#
游乐码2 小时前
c#stack
开发语言·c#
火山引擎开发者社区2 小时前
从监控盲区到业务洞察:深入解读 APMPlus 生产指标
大数据·人工智能·microsoft
好运的阿财3 小时前
OpenClaw四种角色详解
人工智能·python·程序人生·microsoft·开源·ai编程
橘子编程3 小时前
编程语言全指南:从C到Rust
java·c语言·开发语言·c++·python·rust·c#
zztfj3 小时前
C# 异步方法 async / await CancellationToken 设置任务超时并手动取消耗时处理
c#·异步