C#使用InstallerProjects打包桌面应用程序的完整步骤

 更新时间:2020年6月25日 10:36  点击:2258

前言

打包桌面应用程序实在是一个不常使用的东西,偶尔使用起来经常会忘东忘西的耽误时间,因此,这篇文章多以图片记录过程,也是用于备忘。

下载打包工具

C#打包桌面应用程序有很多种方法,这里介绍一种使用Microsoft Visual Studio Installer Projects工具打包的方法。

首先,我们先创建一个Windows桌面应用,如图:

接下来我们选择工具,点击扩展和更新,如图:

然后我们得到界面如下,如图:

界面默认显示的是已安装的内容,我们仔细看下内容,会发现,这里都是我们已经安装过的工具,在仔细看,我们会发现,这里大部分工具的创建者都是microsoft,也就是说,这里的工具都是官方给我们提供的工具。

因为我们要下载本机不存在的工具,所以我们点击左侧菜单的【联机】按钮,然后在右上角的搜索框中输入Microsoft Visual Studio Installer Projects进行检索,如图:

然后我们选中Microsoft Visual Studio Installer Projects选项,点击选项中右上角的下载,将该工具下载到本地。

下载完成后,我们会发现,在当前窗体的下方有这样一个提示。

该提示,告诉我们,虽然工具已经下载完成了,但还没有进行安装,需要我们关闭Visual Studio后,才能安装。

关闭Visual Studio后,会自动弹出如下提示框,系统还会提示我们是否允许,我们选择【是】。

接下来,该窗体会显示工具的相关内容,下方会增加一个修改按钮,如下图:

我们点击修改,然后工具就会自动安装了。

创建打包项目

等待工具安装完成后,我们重新打开Visual Studio,打开刚刚我们建立的WPF项目。

在WPF项目所在的解决方案中,我们右键新建项目,然后选择左边菜单的【其他项目类型】—【Setup Project】,创建安装工程KibaInstallSetup,如下图:

点击确定 ,我们可以看到如下窗口。

该窗口左边窗口有三个文件夹图片,对应内容如下:

Application Folder:应用程序包含的文件设置。

User's Desktop:用户桌面快捷方式设置。

User's Programs Menu:用户启动菜单的快捷方式设置。

我们先看Application Folder的使用方式,首先选中Application Folder,然后右键—>Add—>项目输出。

点击后,弹出[添加项目输出组页面],如下图,因为解决方案下只有一个项目,所以我这里项目选择中只有一个选项。

点击确定,我们就成功的把项目主输出添加进来了,如下图:

此时,我们右键我们的安装工程KibaInstallSetup—生成,就已经可以生成该项目的可执行文件了,如下图:

不过,此时的安装文件是最基础的安装文件,什么自定义都没有。

下面我们为安装文件增加桌面快捷方式图标和开始菜单的快捷方式,并且修改可执行文件的作者、描述等等信息。

打包项目属性配置

项目属性

我们先进行安装文件的基础信息更改。

首先,我们左键选中项目,然后选择属性,注意,不是右键选择属性,而是如下图一样选择属性。

点击后,修改一下作者和描述,属性界面如下图所示:

桌面快捷方式

现在我们修改安装程序的快捷方式图片。

左键选中User's Desktop,然后将鼠标移动到右侧窗体,右键选择[创建新的快捷方式],如下图。

然后,系统弹出一个让我们选择.ico文件的界面,但界面中只有三个文件夹,对应的是我们安装工程左上角的三个文件夹,如下图:

现在我们双击第一个应用程序目录选项,然后点击Add File,向安装目录下添加一个logo.ico文件,最后点击OK。

这样我们就成功创建了桌面快捷方式了,如下图。

现在,我们右键这个Shortcut to logo.ico,修改其名字为Kiba,然后左键点击选中,查看其属性,如下图。

可以看到,我们的快捷方式已经成功指向了我们的主输出,并且Icon也已经修改了。如果不满意指向和Icon,可以在属性里二次修改。

用户菜单快捷方式

用户菜单的快捷方式就是在User's Programs Menu里设置,其设置的方法和桌面快捷方式的设置方法是一模一样的。

依赖文件和依赖框架

依赖文件

我们在打包应用程序时,有时候会需要一些依赖文件,这些文件并不能被主程序引用,但还需要和主程序在同一个安装路径下,那么在打包时,也就需要额外的把这些文件也打包进来。

添加额外依赖文件的方法很简单,选择Application Folder,在其对应的右侧窗体中,右键—Add—文件,如下图:

然后,在弹出的选择文件对话框中选择文件即可。

依赖框架

有时候我们的应用程序需要安装到一个没有Framework的电脑上,那么就需要打包的时候,把Framework也打包进来,或者在用户安装时提示对方下载。

我们右键项目,选择属性,然后在弹出的属性页中点击Prerequisites,如下图:

然后,在系统必备的窗体中,勾选Framework 4.6.1,在选择【从组件供应商的网站上下载系统必备组件】。

这样,我们的可执行文件在运行时,就会提示客户去微软官网下载Framework 4.6.1了,如下图:

当然,我们也可以把Framework 4.6.1打包进来,但这需要我们提前把Framework的安装包下载下来,然后选择从【下列位置下载系统必备组件】,这样那个置灰的【浏览】按钮就可以使用了。

----------------------------------------------------------------------------------------------------

到此,使用InstallerProjects打包桌面应用程序讲解就结束了。

代码已经传到Github上了,欢迎大家下载。

Github地址:https://github.com/kiba518/KibaInstall

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对猪先飞的支持。

[!--infotagslink--]

相关文章

  • C#实现简单的登录界面

    我们在使用C#做项目的时候,基本上都需要制作登录界面,那么今天我们就来一步步看看,如果简单的实现登录界面呢,本文给出2个例子,由简入难,希望大家能够喜欢。...2020-06-25
  • 浅谈C# 字段和属性

    这篇文章主要介绍了C# 字段和属性的的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下...2020-11-03
  • C#中截取字符串的的基本方法详解

    这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
  • C#实现简单的Http请求实例

    这篇文章主要介绍了C#实现简单的Http请求的方法,以实例形式较为详细的分析了C#实现Http请求的具体方法,需要的朋友可以参考下...2020-06-25
  • C#连接SQL数据库和查询数据功能的操作技巧

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
  • C#中new的几种用法详解

    本文主要介绍了C#中new的几种用法,具有很好的参考价值,下面跟着小编一起来看下吧...2020-06-25
  • 使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序)

    这篇文章主要介绍了使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • C#开发Windows窗体应用程序的简单操作步骤

    这篇文章主要介绍了C#开发Windows窗体应用程序的简单操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • C#和JavaScript实现交互的方法

    最近做一个小项目不可避免的需要前端脚本与后台进行交互。由于是在asp.net中实现,故问题演化成asp.net中jiavascript与后台c#如何进行交互。...2020-06-25
  • C++调用C#的DLL程序实现方法

    本文通过例子,讲述了C++调用C#的DLL程序的方法,作出了以下总结,下面就让我们一起来学习吧。...2020-06-25
  • 轻松学习C#的基础入门

    轻松学习C#的基础入门,了解C#最基本的知识点,C#是一种简洁的,类型安全的一种完全面向对象的开发语言,是Microsoft专门基于.NET Framework平台开发的而量身定做的高级程序设计语言,需要的朋友可以参考下...2020-06-25
  • C#变量命名规则小结

    本文主要介绍了C#变量命名规则小结,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-09
  • C#绘制曲线图的方法

    这篇文章主要介绍了C#绘制曲线图的方法,以完整实例形式较为详细的分析了C#进行曲线绘制的具体步骤与相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • C# 中如何取绝对值函数

    本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
  • c#自带缓存使用方法 c#移除清理缓存

    这篇文章主要介绍了c#自带缓存使用方法,包括获取数据缓存、设置数据缓存、移除指定数据缓存等方法,需要的朋友可以参考下...2020-06-25
  • c#中(&&,||)与(&,|)的区别详解

    这篇文章主要介绍了c#中(&&,||)与(&,|)的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • 经典实例讲解C#递归算法

    这篇文章主要用实例讲解C#递归算法的概念以及用法,文中代码非常详细,帮助大家更好的参考和学习,感兴趣的朋友可以了解下...2020-06-25
  • C#学习笔记- 随机函数Random()的用法详解

    下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • 详解如何将c语言文件打包成exe可执行程序

    这篇文章主要介绍了详解如何将c语言文件打包成exe可执行程序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-25