首页 > 编程语言 >C# 打包项目,.生成安装包

C# 打包项目,.生成安装包

时间:2023-04-29 10:00:58浏览次数:63  
标签:文件 项目 C# 添加 选中 Folder 安装包 打包

一、准备工作
1 Visual Studio 2015 必须有相关的打包组件;
2 Visual Studio的打包组件有 InstallShield 和 Visual Studio Installer Projects (安装包:VSI_bundle)组件;
3 Visual Studio Installer Projects还可在VS软件中下载,下载方式如下:
a)点中菜单栏的“工具”选项,并选中“扩展和更新”;

 


b)在搜索框输入 Visual Studio Installer Projects ,然后选中Visual Studio Installer Projects 安装。

 


二、使用 Visual Studio Installer Projects 打包项目
1、 创建项目,可在菜单栏点击 文件——>新建——>项目,也可在当前解决方案上右键,然后选择 添加——>新建项目

 


2 选中 其他项目类型 ——> Visual Studio Installer ——>Setup Project ,然后编辑 名称 和 位置 。

 


3 新建的 工程文件 如下图所示。

 

工程中包含三个文件夹:
Application Folder:存放打包项目包含的所有文件;
User‘s Desktop:存放安装后要置于桌面的文件;
User’s Programs Menu:存放安装后在“开始菜单”内显示的文件;

4 打包文件包含可执行exe(或项目主输出)文件及项目运行包含的脚本、外部添加的dll文件等相关依赖项。
添加方法:
a)点中 “Application Folder” 选项,然后右击,移动至“Add”上;
Folder:添加文件夹;
项目输出:可添加项目的输出文件;
文件:项目运行包含的脚本、外部添加的dll文件等;
程序集:添加项目依赖项,一般在“文件”处就添加了。

 


b)添加项目主输出文件,点击 “项目输出”,在“项目”处选择需要打包的项目,点中“主输出”,然后点中“确定”。(这里添加项目生成的 .exe 文件也是一样的)

 


c)添加程序运行需要的 脚本及外部添加dll文件 等,右击 “Application Folder” 文件夹空白处,选择需要添加的 文件和文件夹。

 


d)添加 快捷方式
1、选中“主输出”文件或添加的 “.exe” 文件,右击选择 “Create Shortcut to” ;
2、点击生成的文件,将其移动至 “User‘s Desktop” ;
3、在 “User’s Programs Menu” 中新建Folder,生成一个文价夹;
4、回到 “Application Folder” 文件夹,选中“主输出”文件或添加的 “.exe” 文件,右击选择 “Create Shortcut to” ;
5、点击生成的文件,将其移动至 “User’s Programs Menu” 生成的文件夹中;

 


e)添加卸载程序的exe文件
1、右击 “Application Folder” 文件夹空白处,找到 “msiexec.exe”文件,在路径处粘贴 “C:\Windows\System32” ,找到 “msiexec.exe” 文件,点击 “打开”。

 

 

2、选中“msiexec.exe”文件,右击选择 “Create Shortcut to” ,并将生成的文件名改为 “uninstall” ;

 

 

如下图所示。

 


3、选中 解决方案资源管理器 中的打包项目,复制 属性的ProductCode 值。

 


4、选中 “uninstall” ,将复制的 ProductCode 值粘贴至 “uninstall” 属性的 Arguments处,并在最前面添加 /x及一个英文空格。

 

 

 

f)添加程序图标(应用程序及卸载程序)
1、选中需要更该的应用图标。

 


2、点中 属性框中Icon ,选中 (Browse … …)

 


3、在弹出窗口中 点击 Browse

 


4、双击 “Application Folder”

 


5、选中 添加的 ico 文件

 


6、点击 OK

 


g)更改应用在 “卸载或更改程序” 中的图标
选中打包项目文件,在 “AddRemoveProgramsIcon” 项按f)步骤更改图标。

 


h)更改安装文件路径
选中 “Application Folder” ,在 DefaultLocation 处 将[ProgramFilesFolder][Manufacturer][ProductName] 改为 C:[Manufacturer][ProductName],安装文件夹由 C:\Program Files[Manufacturer][ProductName] 改为C:[Manufacturer][ProductName] 。

 


i)设置setup的启动条件,判断net是否安装
一般打包的应用程序运行框架中,会依赖“. net Framework”版本环境,所以为确保应用安装并正常运行须先保证系统配置有指定版本及以上版本的依赖项。
1、选中项目,右击——>View——>启动条件

 


2、选中 Net Framework ,在其属性页 Version 项,选择对应的 .Net Framework版本。

 


j)配置完成,生成项目安装包
1、选中 打包项目,右击,点击生成。

 


2、生成后的问件夹。

 


3、生成后Debug包

 


三、其它
1 打开打包项目的文件系统

 


2 主输出或exe的属性

 

 

3 打包项目的属性各项涵义

 

 

标签:文件,项目,C#,添加,选中,Folder,安装包,打包
From: https://www.cnblogs.com/jianxiaoxiu/p/17363624.html

相关文章

  • 【带DC引脚SPI屏】STM32L010K8超低功耗单片机软件模拟SPI驱动ST7567点阵屏12864示例
    显示屏驱动芯片多种多样,有的不带DC,通过接收的数据的某个特定位确定是命令还是数据,比如常见的12864移植案例在【不带DC脚的spi屏】STM32F103C8移植u8g2在软件模拟spi模式下驱动st7920带字库的12864显示屏-不打鱼光晒网-博客园(cnblogs.com)和【不带DC脚的spi屏】stm32f1......
  • cesium-4-属性变换和事件操作
    1、属性变换使用Cesium.CallbackProperty类,构造函数中需要两个参数一个为调用函数,一个为boolean,判断前面这个函数是否需要不断的调用(false即属性不固定),还是只是只调用一次(true即属性固定)代码:...这个extrudedHeight是创建entity中的一个属性extrudedHeight:newCesium.Callb......
  • Scrapy笔记
    python大数据开发scrapy框架架构ScrapyEngine(引:负责Spider、ltemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等Scheduler(调度器):它负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。Downloader(下载器):负......
  • SpringCloud Stream集成RabbitMQ
    1.概述SpringCloudStream框架抽象出了三个最基础的概念来对各种消息中间件提供统一调用:DestinationBinders:负责集成外部消息系统的组件。DestinationBinding:由Binders创建的,负责沟通外部消息系统、消息发送者和消息消费者的桥梁。Message:消息发送者与消息消费......
  • 领先的矢量图形软件Ai2023(Illustrator 2023) Mac版
    Illustrator2023是专为计算机图形和结构设计,提供完整的可视化图形解决方案,并提供良好的效果和卓越的功能。它的可视化图形解决方案能够通过自动的矢量图形处理来创建美丽的建筑和结构。它提供一种简单且有效的方法来创建和编辑图形。→→↓↓载Illustrator2023Mac版 1.它......
  • cesium-3-sdtiles
    1、倾斜摄影加载3dtiles代码vartile1=newCesium.Cesium3DTileset({url:"../data/lesson-015/test3dtiles/tileset.json",maximumScreenSpaceError:1,//这个参数越大,在同等高度下加载的层级清晰度越低});viewer.scene.primitives.add(tile1);viewer......
  • Crash的简单学习
    Crash的简单学习前言最近进行海光服务器的压测,多次出现了压测时宕机的情况.跟OS,DB还有hardware的vender都进行过沟通,但都比较难定位具体问题.麒麟操作系统说需要进行一下vmcore的确认.这边也获取了一下麒麟的文档.想着自己总结一下问题.便于以后查询kdump的简介......
  • 将C#中的DataTable转换为Word表格
    usingMicrosoft.Office.Interop.Word;usingSystem.Data;namespaceDataTableToWord{classProgram{staticvoidMain(string[]args){//创建Word应用程序对象Applicationapp=newApplication();//创建一个新......
  • C内存分配
    堆上内存分配1.brk()和sbrk()progambreakprogrambreak记录了堆顶的地址,当使用brk或者sbrk系统调用时,programbreak的位置会随之改变brk()#include<unistd.h>intbrk(void*end_data_segment);brk(void*end_data_segment)将programbreak抬升到end_data_segment处,成......
  • CSSE3100 合理性解析
    ssignment2CSSE3100/7100ReasoningaboutProgramsDue:4pmon28April,2023Theaimofthisassignmentistoconsolidateyourunderstandingofthecourse'smaterialonarrays,programderivationandrecursion.Itisworth20%ofyourfinalmarkforth......