博主还在加班制作.net安装包,那样接下去在炮制设置包时才能条理清晰公海赌船网址

一、前言

二零一七年最后几天,你们都喜悦的跨年,博主还在加班制作.net安装包。因为年前要出来第②版的安装包,所以博主是加班加点啊。本来想用VS自带的制作工具,然而用过的人都知情,真是卓殊好(tong)用(ku),各类包须要独自下载不说,界面也欠赏心悦目,所以决定弃用之。同事推荐用Advanced
Installer,然则同事也是很久不用了,记不起来具体用法。所以博主是边查找边前进,所以不免跳进坑里,为了制止后来人跳进同样的坑里,作文以记之。

好了,不说废话,正文开端!

一、前言

2017年最后几天,你们都春风得意的跨年,博主还在加班制作.net安装包。因为年前要出来第1版的安装包,所以博主是加班加点啊。本来想用VS自带的营造工具,但是用过的人都知晓,真是要命好(tong)用(ku),各个包必要独自下载不说,界面也倒霉看,所以决定弃用之。同事推荐用Advanced
Installer,然则同事也是很久不用了,记不起来具体用法。所以博主是边寻找边前进,所以不免跳进坑里,为了幸免后来人跳进同样的坑里,作文以记之。

好了,不说废话,正文起先!

2018第二发:记一遍【Advanced Installer】打包之旅,2018先是发

二 、画流程图

俗话说的好,“磨刀不误砍柴工”!

率先强调一点,大家要先弄精晓大家每一步要做哪些,那样接下去在炮制设置包时才能条理清晰,有层有次,不不难犯错。

比如大家要判断客户机器上是还是不是安装.net
framework3.5及以上版本,是或不是安装IIS,是还是不是安装SQL
Server二零零七及以上版本数据库等等。

自个儿那些类别的流程图如下:

公海赌船网址 1

style=”font-size: 18px; font-family: 宋体;”>Tips1:开头在此以前最佳先画流程图

二 、画流程图

俗话说的好,“磨刀不误砍柴工”!

率先强调一点,大家要先弄通晓大家每一步要做什么样,那样接下去在炮制设置包时才能条理清晰,井井有理,不易于犯错。

诸如大家要认清客户机器上是还是不是安装.net
framework3.5及以上版本,是还是不是安装IIS,是或不是安装SQL
Server二零零五及以上版本数据库等等。

笔者那些类别的流程图如下:

公海赌船网址 2

style=”font-size: 18px; font-family: 宋体;”>Tips1:初叶在此之前最棒先画流程图

一、前言

二〇一七年最后几天,你们都乐滋滋的跨年,博主还在加班制作.net安装包。因为年前要出来第贰版的安装包,所以博主是加班加点啊。本来想用VS自带的构建工具,然则用过的人都晓得,真是要命好(tong)用(ku),种种包要求单独下载不说,界面也倒霉看,所以决定弃用之。同事推荐用Advanced
Installer,可是同事也是很久不用了,记不起来具体用法。所以博主是边查找边前进,所以不免跳进坑里,为了制止后来人跳进同样的坑里,作文以记之。

好了,不说废话,正文开端!

③ 、开首制作

有了流程图,只需遵从!关于Advanced
Installer的根底用法,网上有广大的材质,官网也有支持文书档案,那里就不赘述了。由于要用到自定义安装包的长河,要求新建对话框,博主用了小卖部模板,Advanced
Installer的本子是14.5.2,也是新型的版本。

③ 、开端营造

有了流程图,只需遵从!关于Advanced
Installer的基础用法,网上有好多的材料,官网也有帮带文书档案,那里就不赘述了。由于要用到自定义安装包的进程,须求新建对话框,博主用了同盟社模板,Advanced
Installer的本子是14.5.2,也是流行的版本。

② 、画流程图

俗话说的好,“磨刀不误砍柴工”!

先是强调一点,大家要先弄通晓大家每一步要做如何,那样接下去在制作设置包时才能条理清晰,井然有条,不便于犯错。

诸如我们要认清客户机器上是不是安装.net
framework3.5及以上版本,是不是安装IIS,是或不是安装SQL
Server二零零六及以上版本数据库等等。

自家那一个项目标流程图如下:

公海赌船网址 3

Tips1:开始之前最好先画流程图

① 、选择模板

第②新建立模型板里面选择Enterprise,并选取语言(私下认可为中文),然后创设项目:

公海赌船网址 4

style=”font-size: 18px; font-family: 宋体;”>Tips2:要是安装包中须求自定义对话框,则须要选用Enterprise版。

壹 、选取模板

先是新建立模型板里面选取Enterprise,并选拔语言(暗中同意为普通话),然后创制项目:

公海赌船网址 5

style=”font-size: 18px; font-family: 宋体;”>Tips2:要是安装包中要求自定义对话框,则需求选用Enterprise版。

③ 、发轫构建

有了流程图,只需遵守!关于Advanced
Installer的基础用法,网上有不少的材质,官网也有赞助文书档案,那里就不赘述了。由于要用到自定义安装包的长河,供给新建对话框,博主用了信用合作社模板,Advanced
Installer的本子是14.5.2,也是前卫的版本。

贰 、设置基本音信

Name即为该安装包的名号,集团正是你所在的信用合作社啦,还有版本音讯等等,那些很不难。

公海赌船网址 6

二 、设置基本新闻

Name即为该安装包的名号,公司便是您所在的店铺啦,还有版本新闻等等,那一个很简短。

公海赌船网址 7

① 、选用模板

第贰新建立模型板里面选拔Enterprise,并精选语言(暗许为汉语),然后创设项目:

公海赌船网址 8

Tips2:如果安装包中需要自定义对话框,则需要选择Enterprise版。

③ 、设置默许安装路径

点击Package
Definition->Install Parameters,填写默许安装路径。

Application
folder暗中认可的剧情是那般:“[ProgramFilesFolder][Manufacturer]\[ProductName]”,
这些剧情表示安装时默许的设置路径:

[ProgramFilesFolder]表示文件夹,那里为D:\Program
Files(x86)。

[Manufacturer]意味着集团名称,那里为凯迪拉克soft。

[ProductName]意味着产品名称,那里为凯迪拉克aV9。

 公海赌船网址 9

叁 、设置私下认可安装路径

点击Package
Definition->Install Parameters,填写暗中同意安装路径。

Application
folder默许的内容是那般:“[ProgramFilesFolder][Manufacturer]\[ProductName]”,
这么些剧情表示安装时默许的安装路径:

[ProgramFilesFolder]意味着文件夹,那里为D:\Program
Files(x86)。

[Manufacturer]代表集团名称,那里为罗密欧soft。

[ProductName]表示产品名称,那里为雷克萨斯aV9。

 公海赌船网址 10

② 、设置基本消息

Name即为该安装包的称谓,企业正是你所在的信用合作社啦,还有版本音讯等等,这些很简短。

公海赌船网址 11

④ 、设置安装条件

点击Requirements->Launch
Conditions->Software,勾选相应的准绳。那里依照流程图所示,小编应当勾选.Net
Framework、IIS以及SQL Server。注意那里的规范指的是低于标准,比如笔者这边SQL
Server选的是二〇〇五,即客户机器上应当具备二零零五及以上版本的SQL
Server,假使没有装,则会提醒没有设置SQL2006。

此地还有系统标准即供给客户机器是win7依旧winxp等等。假诺还有更多的基准,Custom里面能够自定义。

 公海赌船网址 12

四 、设置安装条件

点击Requirements->Launch
Conditions->Software,勾选相应的标准化。那里按照流程图所示,我应当勾选.Net
Framework、IIS以及SQL Server。注意那里的口径指的是低于标准,比如笔者那边SQL
Server选的是2007,即客户机器上应当负有贰零零伍及以上版本的SQL
Server,即使没有装,则会提示没有设置SQL二零零七。

那边还有系统标准化即须求客户机器是win7还是winxp等等。假设还有越来越多的尺度,Custom里面能够自定义。

 公海赌船网址 13

③ 、设置私下认可安装路径

点击Package Definition->Install Parameters,填写暗中同意安装路径。

Application
folder暗中同意的始末是这么:“[ProgramFilesFolder][Manufacturer]\[ProductName]”,
那个情节表示安装时暗中同意的设置路径:

[ProgramFilesFolder]代表文件夹,那里为D:\Program Files(x86)。

[Manufacturer]表示公司名称,这里为沃尔沃soft。

[ProductName]意味着产品名称,那里为奥迪(Audi)aV9。

 公海赌船网址 14

五 、添加文书或文件夹

点击Resources->Files and
Folders,在Application Folders上右键,选用Add Folder大概Add
Files,那里本人添加了多少个文件夹,用于后续操作。

公海赌船网址 15

⑤ 、添加文件或文件夹

点击Resources->Files and
Folders,在Application Folders上右键,选拔Add Folder可能Add
Files,那里作者添加了六个文本夹,用于后续操作。

公海赌船网址 16

肆 、设置安装条件

点击Requirements->Launch
Conditions->Software,勾选相应的尺度。这里依照流程图所示,作者应该勾选.Net
Framework、IIS以及SQL
Server。注意那里的尺码指的是低于标准,比如自身那里SQL
Server选的是2007,即客户机器上应该负有二零零五及以上版本的SQL
Server,即便没有装,则会唤醒没有设置SQL二〇〇六。

这边还有系统标准即供给客户机器是win7照旧winxp等等。如若还有更加多的条件,Custom里面可以自定义。

 公海赌船网址 17

六 、自定义对话框(Dialog)

新建对话框在此之前能够在Themes中选取宗旨和体制。

点击User
Interface->Dialogs,在FolderDlg上右键,选择Add Dialog是添加Advanced
Installer中自定义的对话框,采用New Dialog是骤增多少个空的对话框,

下一场大家可机关在上头定义内容:

公海赌船网址 18

新建对话框后,能够拖出安装进度中dialog的外观,这一个对于大家.Net开发人士来说,应该是小Case吧,看一下职能:

公海赌船网址 19

能够对文本框设置默许值:

公海赌船网址 20

style=”font-size: 18px; font-family: 宋体;”>Tips3:文本框中的属性名,不要涂改。即便改动会有大难点,至于怎么问题,前边再说!

鉴于大家需求安装连接字符串,所以须求客户设置数据库的相关音信:

分选Add
Dialog后,在弹出框中甄选SQLServerConnentionDlg

公海赌船网址 21

意义如下:

公海赌船网址 22

末尾再新建多个会话框,用于计划项目到IIS所需求的原则:

公海赌船网址 23

同一能够安装网站名称和端口号:依照流程图,那里的私下认可值要求各自设置为Mango和8001,用户能够自行修改。

到此地新建对话框告一段落。

⑥ 、自定义对话框(Dialog)

新建对话框从前能够在Themes中挑选大旨和样式。

点击User
Interface->Dialogs,在FolderDlg上右键,选取Add Dialog是添加Advanced
Installer中自定义的对话框,选用New Dialog是增创三个空的对话框,

然后大家可自动在下边定义内容:

公海赌船网址 24

新建对话框后,能够拖出安装进程中dialog的外观,这些对于大家.Net开发职员来说,应该是小Case吧,看一下功力:

公海赌船网址 25

能够对文本框设置暗中认可值:

公海赌船网址 26

style=”font-size: 18px; font-family: 宋体;”>Tips3:文本框中的属性名,不要涂改。如果改动会有大题材,至于什么难题,前面再说!

由于我们须求安装连接字符串,所以供给客户设置数据库的相干新闻:

采用Add
Dialog后,在弹出框中选拔SQLServerConnentionDlg

公海赌船网址 27

效果如下:

公海赌船网址 28

说到底再新建多个会话框,用于铺排项目到IIS所急需的标准:

公海赌船网址 29

一致能够安装网站名称和端口号:依据流程图,那里的暗许值必要各自安装为Mango和8001,用户能够自动修改。

到那边新建对话框告一段落。

五 、添加文书或文件夹

点击Resources->Files and Folders,在Application Folders上右键,采取Add
Folder恐怕Add Files,那里笔者添加了四个文件夹,用于后续操作。

公海赌船网址 30

⑦ 、设置必填验证

就拿地方那几个对话框为例,纵然大家设置的有私下认可值,但是客户在安装过程中一点都不小心给删掉了,又从未填写,恰巧又点了下一步,那样的话,安装进程中会有失常态。所以大家要做必填验证,即文本框中向来不值,则“下一步”按钮不可用,有值才可用。

所以选拔“下一步”,关心人世的“Control
Conditions”:

 公海赌船网址 31

点击New按钮在新弹出的界面中在Condition中填入“NOT
EDIT_1_DROP OR NOT EDIT_1_DROP_1”,在Action中选择Disable。

EDIT_1_DROP和EDIT_1_DROP_1正是网站名称和端口号,前面加NOT的意味正是,假如那八个文本框中自由二个一向不填写,则按钮不可用(Disable)。

同理再添加一个“EDIT_1_DROP AND
EDIT_1_DROP_1”,在Action中挑选Enable。即都填内容了,则按钮可用。那样就对控件做了必填验证。是还是不是很简短吗!

公海赌船网址 32

 

柒 、设置必填验证

就拿地方这一个对话框为例,固然大家设置的有暗中同意值,可是客户在安装进度中相当的大心给删掉了,又不曾填写,恰巧又点了下一步,那样的话,安装进度中会极度。所以我们要做必填验证,即文本框中从未值,则“下一步”按钮不可用,有值才可用。

所以选拔“下一步”,关注人世的“Control
Conditions”:

 公海赌船网址 33

点击New按钮在新弹出的界面中在Condition中填入“NOT
EDIT_1_DROP OR NOT EDIT_1_DROP_1”,在Action中选择Disable。

EDIT_1_DROP和EDIT_1_DROP_1便是网站名称和端口号,前边加NOT的情趣正是,假使那七个文本框中肆意1个尚未填写,则按钮不可用(Disable)。

同理再添加贰个“EDIT_1_DROP AND
EDIT_1_DROP_1”,在Action中选拔Enable。即都填内容了,则按钮可用。那样就对控件做了必填验证。是否很简短吗!

公海赌船网址 34

 

⑥ 、自定义对话框(Dialog)

新建对话框此前能够在Themes中挑选核心和样式。

点击User Interface->Dialogs,在FolderDlg上右键,选取Add
Dialog是添加Advanced Installer中自定义的对话框,选用New
Dialog是增创3个空的对话框,

然后大家可自动在上边定义内容:

公海赌船网址 35

新建对话框后,能够拖出安装进程中dialog的外观,那么些对于大家.Net开发人士来说,应该是小Case吧,看一下成效:

公海赌船网址 36

能够对文本框设置暗中同意值:

公海赌船网址 37

Tips3:文本框中的属性名,不要修改。如果修改会有大问题,至于什么问题,后面再说!

是因为大家需求设置连接字符串,所以必要客户设置数据库的相干音讯:

采取Add Dialog后,在弹出框中选用SQLServerConnentionDlg

公海赌船网址 38

功能如下:

公海赌船网址 39

最终再新建一个对话框,用于安插项目到IIS所须求的口径:

公海赌船网址 40

一点差异也没有于能够设置网站名称和端口号:依据流程图,那里的暗许值要求各自安装为Mango和8001,用户能够活动修改。

到那里新建对话框告一段落。

八 、设置桌面神速形式

根据流程图所示,安装实现后,需求在桌目生成急迅防方式。所以接下去,大家就来做那件事:

公海赌船网址 41

率先来到Files and Folders选项卡,在Application
Shortcut Folder上面右键 选拔“New Shortcut”,弹出如下界面:

公海赌船网址 42

 

在那个框里首要安装急迅格局的Name和讲述以及图标(那一个图标,能够选拔.exe文件)。点击OK,就会在Application
Shortcut Folder中显示那样一条消息。

公海赌船网址 43

只是先别急,假若单独是那样的话,火速情势是不起成效的。因为大家还并未设置快速格局对应的可执行文件。

双击那条音讯,在弹出的对话框中装置Shortcut
Target。

公海赌船网址 44

看样子那,肯定有人有疑点?既然那样怎么不在新增飞速方式的时候共同设置呢?

因为在新增的时候,Shortcut
target那几个文本框中的内容无法改改。那么些很坑爹,博主也试了许久才试出来的。

终极,将以此音讯拖到Desktop里面即可,安装收尾后,就会在桌面展现那一个飞速格局。

公海赌船网址 45

八 、设置桌面急忙格局

听别人讲流程图所示,安装收尾后,必要在桌面生成快捷防格局。所以接下去,大家就来做那件事:

公海赌船网址 46

先是来到Files and Folders选项卡,在Application
Shortcut Folder上边右键 采用“New Shortcut”,弹出如下界面:

公海赌船网址 47

 

在这几个框里首要安装快捷情势的Name和描述以及图标(那些图标,能够选取.exe文件)。点击OK,就会在Application
Shortcut Folder中显得那样一条音信。

公海赌船网址 48

唯独先别急,假诺单纯是那样的话,赶快情势是不起效用的。因为大家还从未设置快速方式对应的可执行文件。

双击那条音讯,在弹出的对话框中装置Shortcut
Target。

公海赌船网址 49

见到那,肯定有人有疑难?既然那样怎么不在新增飞快形式的时候一起设置呢?

因为在疯长的时候,Shortcut
target那些文本框中的内容不能够改改。这几个很坑爹,博主也试了漫长才试出来的。

最后,将以此消息拖到Desktop里面即可,安装实现后,就会在桌面展现那么些飞快格局。

公海赌船网址 50

七 、设置必填验证

就拿地点那几个对话框为例,固然大家设置的有暗中同意值,可是客户在设置进程中一点都不小心给删掉了,又从未填写,恰巧又点了下一步,那样的话,安装进度中会有失常态。所以大家要做必填验证,即文本框中没有值,则“下一步”按钮不可用,有值才可用。

之所以采取“下一步”,关切人世的“Control Conditions”:

 公海赌船网址 51

点击New按钮在新弹出的界面中在Condition中填入“NOT EDIT_1_DROP OR NOT
EDIT_1_DROP_1”,在Action中选择Disable。

EDIT_1_DROP和EDIT_1_DROP_1就是网站名称和端口号,前边加NOT的趣味就是,如若这四个文本框中随机二个从未填写,则按钮不可用(Disable)。

同理再添加3个“EDIT_1_DROP AND
EDIT_1_DROP_1”,在Action中选拔Enable。即都填内容了,则按钮可用。这样就对控件做了必填验证。是否很粗大略吗!

公海赌船网址 52

 

四 、设置IIS网站的网站名、端口号

在上头对话框的尾声一步中,大家铭记网站名称的和端口号的文本框的属性名,然后来到IIS选项卡中:

先是新增三个选拔程序池,名称即为网站名称文本框的属性名,那里为EDIT_1_PROP,在Advanced
Installer里面,使用中括号[]将控件的习性名括起来表示变量的概念。

在Basic Pool
Settings中安装程序池的开发银行情势为再三再四运转,勾选马上运营程序池复选框,framework版本选用为4.0,托管格局选拔为集成。

公海赌船网址 53

在Identity中设置使用程序池表示为ApplicationPoolIdentity。

公海赌船网址 54

采纳程序池设置好之后,再来设置站点:

新建四个站点名称相同为EDIT_1_PROP,在Basic
Site Setting中安装Name和文件路径。

公海赌船网址 55

 

在Bindings/SSL中安装端口号,IP地址选拔任何未分配。

公海赌船网址 56

 

在Application
Pool中选择刚刚新建的接纳程序池。

公海赌船网址 57

到那边IIS这一块就设置好了。

安装进度中,Advanced
Installer就会活动的将网站安插好。这么些确实是很牛很有力!不得不叹服人家做的就是好!

肆 、设置IIS网站的网站名、端口号

在上头对话框的末尾一步中,大家记住网站名称的和端口号的文本框的属性名,然后来到IIS选项卡中:

首先新增二个施用程序池,名称即为网站名称文本框的属性名,那里为EDIT_1_PROP,在Advanced
Installer里面,使用中括号[]将控件的个性名括起来表示变量的定义。

在Basic Pool
Settings中安装程序池的运转格局为总是运营,勾选马上运维程序池复选框,framework版本选拔为4.0,托管方式选拔为集成。

公海赌船网址 58

在Identity中设置使用程序池表示为ApplicationPoolIdentity。

公海赌船网址 59

行使程序池设置好之后,再来设置站点:

新建二个站点名称一致为EDIT_1_PROP,在Basic
Site Setting中装置Name和文件路径。

公海赌船网址 60

 

在Bindings/SSL中安装端口号,IP地址选拔任何未分配。

公海赌船网址 61

 

在Application
Pool中选拔刚刚新建的使用程序池。

公海赌船网址 62

到此地IIS这一块就设置好了。

安装进程中,Advanced
Installer就会活动的将网站陈设好。这几个真的是很牛很有力!不得不钦佩人家做的正是好!

八 、设置桌面火速格局

依照流程图所示,安装收尾后,供给在桌不熟悉成快捷防形式。所以接下去,大家就来做这件事:

公海赌船网址 63

率先来到Files and Folders选项卡,在Application Shortcut Folder下边右键
选用“New Shortcut”,弹出如下界面:

公海赌船网址 64

 

在这几个框里首要安装飞快方式的Name和描述以及图标(那一个图标,可以选拔.exe文件)。点击OK,就会在Application
Shortcut Folder中显得那样一条音讯。

公海赌船网址 65

而是先别急,借使一味是那样的话,快速格局是不起作用的。因为我们还并未设置神速格局对应的可执行文件。

双击那条音信,在弹出的对话框中装置Shortcut Target。

公海赌船网址 66

探望那,肯定有人有疑问?既然那样怎么不在新增快速情势的时候一起设置呢?

因为在疯长的时候,Shortcut
target这么些文本框中的内容不能够改改。那一个很坑爹,博主也试了遥遥无期才试出来的。

最终,将以此音讯拖到Desktop里面即可,安装实现后,就会在桌面展现那个快捷方式。

公海赌船网址 67

五 、两种办法设置config文件

五 、三种格局设置config文件

四 、设置IIS网站的网站名、端口号

在上边对话框的末尾一步中,大家铭记网站名称的和端口号的文本框的属性名,然后来到IIS选项卡中:

首先新增一个利用程序池,名称即为网站名称文本框的属性名,那里为EDIT_1_PROP,在Advanced
Installer里面,使用中括号[]将控件的性质名括起来表示变量的概念。

在Basic Pool
Settings中装置程序池的运营方式为连日来运维,勾选立时运转程序池复选框,framework版本选拔为4.0,托管情势选取为集成。

公海赌船网址 68

在Identity中安装使用程序池表示为ApplicationPoolIdentity。

公海赌船网址 69

行使程序池设置好之后,再来设置站点:

新建二个站点名称一致为EDIT_1_PROP,在Basic Site
Setting中装置Name和文件路径。

公海赌船网址 70

 

在Bindings/SSL中装置端口号,IP地址选拔任何未分配。

公海赌船网址 71

 

在Application Pool中精选刚刚新建的使用程序池。

公海赌船网址 72

到此地IIS这一块就安装好了。

设置进程中,Advanced
Installer就会自行的将网站布署好。这一个的确是很牛很强大!不得不钦佩人家做的正是好!

1、直接在Advanced Installer中设置

在增进文书的时候,假若有xml类型的公文,会有诸如此类的提醒:

公海赌船网址 73

这儿大家勾选供给修改配置的公文,点击ok,那样就足以直接在Advanced
Installer中期维修改。

找到要求修改的节点,间接有文本框的习性替换掉就能够:

公海赌船网址 74

那样,在安装进度中就会将config文件中的相应的节点替换为客户输入的值。

还记得Tips3啊?我们说过假设改动文本框的属性名之后,那么这么设置之后,config中的值不会安装为客户输入的值,会一贯是文本框中安装的暗中同意值。

纪事切记!!!主要的业务多少个叹号!

1、直接在Advanced Installer中设置

在加上文件的时候,如若有xml类型的文书,会有那般的唤醒:

公海赌船网址 75

这时大家勾选须要修改配置的文书,点击ok,那样就足以平昔在Advanced
Installer中期维修改。

找到必要修改的节点,直接有文本框的天性替换掉就足以:

公海赌船网址 76

如此,在设置进程中就会将config文件中的相应的节点替换为客户输入的值。

还记得Tips3呢?大家说过若是改动文本框的属性名之后,那么如此设置之后,config中的值不会设置为客户输入的值,会一贯是文本框中装置的暗中认可值。

切记切记!!!首要的工作四个叹号!

⑤ 、二种艺术设置config文件

二 、使用自定义的dll文件

至于那一点请见第四小节。

二 、使用自定义的dll文件

关于那一点请见第④小节。

1、直接在Advanced Installer中设置

在累加文书的时候,就算有xml类型的文书,会有这么的唤起:

公海赌船网址 77

那时我们勾选要求修改配置的文书,点击ok,那样就足以直接在Advanced
Installer中期维修改。

找到必要修改的节点,间接有文本框的属性替换掉就能够:

公海赌船网址 78

如此,在设置进程中就会将config文件中的相应的节点替换为客户输入的值。

还记得Tips3吧?大家说过假使改动文本框的属性名之后,那么那样设置之后,config中的值不会安装为客户输入的值,会平素是文本框中设置的私下认可值。

切记切记!!!首要的作业多个叹号!

六、自定义dll

点击Custome
Behavior->Custom Actions,选拔.Net Installer Class
action。那时会让您挑选文件中的dll文件。

公海赌船网址 79

理所当然了,以前,请打开你的Visual
Studio,新建三个类库项目,那里命名为InstallPorscheaV9ServiceT,然后新建三个设置程序类,重写Install方法。

到那边,大家先暂停一下,问一下祥和:在程序中怎么接收从Advanced
Installer传过来的参数呢?

若果此时大家早已将那一个dll插足到Advanced
Installer中,在Installer Class Paramters中得以增加参数。

公海赌船网址 80

譬如说将文件路径传回后台,能够那样丰裕:Name为FilePath,Value为[APPDIR]\。

此间有地点须求留意,传递文件路径时,Value为[APPDIR]\,这个”\”请不要漏掉了。

style=”font-size: 18px; font-family: 宋体;”>Tips4:传递文件路径时,Value为[APPDIR]\,这个”\”请不要漏掉了。

别的参数的Value,须求安装为相应文本框的属性名称,格式为:[属性名]。

上边来看一看代码:

public override void Install(IDictionary stateSaver)
{
    Parameters configParms = new Parameters();
    configParms.FilePath = Context.Parameters["FilePath"];
    configParms.ServerPath = Context.Parameters["ServerPath"];
    configParms.ClientPath = Context.Parameters["ClientPath"];
    configParms.DataSource = Context.Parameters["DataSource"];
    configParms.UserId = Context.Parameters["UserId"];
    configParms.Password = Context.Parameters["Password"];
    new Operators().UpdateLandaV9Config(configParms);
    base.Install(stateSaver);
}

此地最首要接受从Advanced
Installer中传过来的参数,接着在Operators类中更新配备文件。

还记得Tips3啊?若是在那里修改的属性名,那么那里吸收的参数也是文本框的默许值。

那其间根本干了三件事,获取连接字符串,更新连接字符串,安装服务

public void UpdateLandaV9Config(Parameters configParms)
{
    string filePath = Path.Combine(configParms.FilePath, "LandaV9Service", "LandaEntryInfoService.exe.config");
    string connectionString = this.GetConnectionString(configParms);
    this.UpdateConnections(filePath, connectionString);this.InstallService(Path.Combine(configParms.FilePath, "LandaV9Service"));
}

还记得Tips4吗?若是在传递文件路径的时候只是写[APPDIR],而不是[APPDIR]\,那么程序运营到此处的时候,会抛“FileNotFound”非常!

下来来看一下实际的代码:

/// <summary>
/// 获取连接字符串
/// </summary>
/// <param name="op"></param>
/// <returns></returns>
public string GetConnectionString(Parameters op)
{
    return string.Format("Data Source={0};Initial Catalog=LandaEntryManager;Persist Security Info=True;User ID={1};Password={2}", op.DataSource, op.UserId, op.Password);
}

/// <summary>
/// 更新连接字符串
/// </summary>
/// <param name="filePath"></param>
/// <param name="conn"></param>
public void UpdateConnections(string filePath, string conn)
{
    XmlDocument xmlDocument = new XmlDocument();
    xmlDocument.Load(filePath);
    XmlElement xmlElement = (XmlElement)xmlDocument.SelectSingleNode("/configuration/connectionStrings/add[@name='LandaEntryManager']");
    if (xmlElement != null)
        xmlElement.SetAttribute("connectionString", conn);
    xmlDocument.Save(filePath);
}

再来看安装服务:

/// <summary>
/// 安装服务
/// </summary>
/// <param name="filePath"></param>
public void InstallService(string filePath)
{
    Environment.CurrentDirectory = filePath;
    Process process = new Process();
    process.StartInfo.UseShellExecute = false;
    process.StartInfo.FileName = "Install.bat";
    process.StartInfo.CreateNoWindow = true;
    process.StartInfo.Verb = "runas";  //主要设置为以管理员启动
    process.Start();
}

有安装就有起步,不过一旦紧跟其后写运维服务,会提醒找不到劳动,安装程序就会出错。

博主想了四个措施,重写OnAfterInstall方法,在这么些主意里面写运营服务:

/// <summary>
/// 重启服务
/// </summary>
/// <param name="savedState"></param>
protected override void OnAfterInstall(IDictionary savedState)
{
    ServiceController serviceController = new ServiceController("LandaInformationServiceV9");
    serviceController.Start();
    base.OnAfterInstall(savedState);
}

那样就没难题了!

在这几个程序集里面能够自定义你想做的别样作业,比如,还原数据库等等。

六、自定义dll

点击Custome
Behavior->Custom Actions,选取.Net Installer Class
action。那时会让您选用文件中的dll文件。

公海赌船网址 81

自然了,在此以前,请打开你的Visual
Studio,新建3个类库项目,那里命名为InstallPorscheaV9ServiceT,然后新建三个装置程序类,重写Install方法。

到此处,我们先暂停一下,问一下和谐:在程序中怎么接收从Advanced
Installer传过来的参数呢?

如若此时我们已经将这几个dll参加到Advanced
Installer中,在Installer Class Paramters中得以添加参数。

公海赌船网址 82

比如将文件路径传回后台,能够如此丰盛:Name为File帕特h,Value为[APPDIR]\。

此地有地点须求专注,传递文件路径时,Value为[APPDIR]\,这个”\”请不要漏掉了。

style=”font-size: 18px; font-family: 宋体;”>Tips4:传递文件路径时,Value为[APPDIR]\,这个”\”请不要漏掉了。

其余参数的Value,须要设置为对应文本框的性格名称,格式为:[属性名]。

下边来看一看代码:

public override void Install(IDictionary stateSaver)
{
    Parameters configParms = new Parameters();
    configParms.FilePath = Context.Parameters["FilePath"];
    configParms.ServerPath = Context.Parameters["ServerPath"];
    configParms.ClientPath = Context.Parameters["ClientPath"];
    configParms.DataSource = Context.Parameters["DataSource"];
    configParms.UserId = Context.Parameters["UserId"];
    configParms.Password = Context.Parameters["Password"];
    new Operators().UpdateLandaV9Config(configParms);
    base.Install(stateSaver);
}

此地关键接受从Advanced
Installer中传过来的参数,接着在Operators类中创新配备文件。

还记得Tips3吧?假若在那边修改的属性名,那么那里接受的参数也是文本框的默许值。

那在那之中根本干了三件事,获取连接字符串,更新连接字符串,安装服务

public void UpdateLandaV9Config(Parameters configParms)
{
    string filePath = Path.Combine(configParms.FilePath, "LandaV9Service", "LandaEntryInfoService.exe.config");
    string connectionString = this.GetConnectionString(configParms);
    this.UpdateConnections(filePath, connectionString);this.InstallService(Path.Combine(configParms.FilePath, "LandaV9Service"));
}

还记得Tips4啊?借使在传递文件路径的时候只是写[APPDIR],而不是[APPDIR]\,那么程序运转到此地的时候,会抛“FileNotFound”非常!

下来来看一下具体的代码:

/// <summary>
/// 获取连接字符串
/// </summary>
/// <param name="op"></param>
/// <returns></returns>
public string GetConnectionString(Parameters op)
{
    return string.Format("Data Source={0};Initial Catalog=LandaEntryManager;Persist Security Info=True;User ID={1};Password={2}", op.DataSource, op.UserId, op.Password);
}

/// <summary>
/// 更新连接字符串
/// </summary>
/// <param name="filePath"></param>
/// <param name="conn"></param>
public void UpdateConnections(string filePath, string conn)
{
    XmlDocument xmlDocument = new XmlDocument();
    xmlDocument.Load(filePath);
    XmlElement xmlElement = (XmlElement)xmlDocument.SelectSingleNode("/configuration/connectionStrings/add[@name='LandaEntryManager']");
    if (xmlElement != null)
        xmlElement.SetAttribute("connectionString", conn);
    xmlDocument.Save(filePath);
}

再来看安装服务:

/// <summary>
/// 安装服务
/// </summary>
/// <param name="filePath"></param>
public void InstallService(string filePath)
{
    Environment.CurrentDirectory = filePath;
    Process process = new Process();
    process.StartInfo.UseShellExecute = false;
    process.StartInfo.FileName = "Install.bat";
    process.StartInfo.CreateNoWindow = true;
    process.StartInfo.Verb = "runas";  //主要设置为以管理员启动
    process.Start();
}

有安装就有运转,可是假诺紧跟其后写运营服务,会提醒找不到劳动,安装程序就会出错。

博主想了2个方法,重写OnAfterInstall方法,在那几个艺术里面写运营服务:

/// <summary>
/// 重启服务
/// </summary>
/// <param name="savedState"></param>
protected override void OnAfterInstall(IDictionary savedState)
{
    ServiceController serviceController = new ServiceController("LandaInformationServiceV9");
    serviceController.Start();
    base.OnAfterInstall(savedState);
}

如此这般就没难题了!

在这几个程序集里面能够自定义你想做的其余工作,比如,还原数据库等等。

贰 、使用自定义的dll文件

至于那点请见第第五小学节。

七、后记

此次教程到此甘休,这也是博主在这几天假期寻找出来的,假诺有不当之处,尽请指正!

附上Advanced
Installer的官网地址:https://www.advancedinstaller.com/

但愿本文对您具备帮忙。借使您认为本文可以帮忙你,就点个赞吧。你的支撑是博主继续持之以恒的不懈重力。

七、后记

这一次教程到此甘休,那也是博主在这几天假日寻找出来的,借使有不当之处,尽请指正!

依附Advanced
Installer的官网地址:https://www.advancedinstaller.com/

但愿本文对您抱有扶助。如若你以为本文能够支持你,就点个赞吧。你的支撑是博主继续锲而不舍的不懈引力。

六、自定义dll

点击Custome Behavior->Custom Actions,采取.Net Installer Class
action。那时会让您接纳文件中的dll文件。

公海赌船网址 83

自然了,在此以前,请打开你的Visual
Studio,新建1个类库项目,这里命名为InstallPaganiaV9ServiceT,然后新建三个安装程序类,重写Install方法。

到此地,咱们先暂停一下,问一下团结:在先后中怎么接收从Advanced
Installer传过来的参数呢?

倘若此时我们早就将以此dll参与到Advanced Installer中,在Installer Class
Paramters中能够增进参数。

公海赌船网址 84

诸如将文件路径传回后台,能够这么丰盛:Name为FilePath,Value为[APPDIR]\。

那里有地点需求专注,传递文件路径时,Value为[APPDIR]\,这个”\”请不要漏掉了。

Tips4:传递文件路径时,Value为[APPDIR]\,这个"\"请不要漏掉了。

别的参数的Value,要求安装为相应文本框的习性名称,格式为:[属性名]。

上面来看一看代码:

public override void Install(IDictionary stateSaver)
{
    Parameters configParms = new Parameters();
    configParms.FilePath = Context.Parameters["FilePath"];
    configParms.ServerPath = Context.Parameters["ServerPath"];
    configParms.ClientPath = Context.Parameters["ClientPath"];
    configParms.DataSource = Context.Parameters["DataSource"];
    configParms.UserId = Context.Parameters["UserId"];
    configParms.Password = Context.Parameters["Password"];
    new Operators().UpdateLandaV9Config(configParms);
    base.Install(stateSaver);
}

那边根本收受从Advanced
Installer中传过来的参数,接着在Operators类中更新配备文件。

还记得Tips3呢?如若在那边修改的属性名,那么那里接受的参数也是文本框的暗中认可值。

那中间主要干了三件事,获取连接字符串,更新连接字符串,安装服务

public void UpdateLandaV9Config(Parameters configParms)
{
    string filePath = Path.Combine(configParms.FilePath, "LandaV9Service", "LandaEntryInfoService.exe.config");
    string connectionString = this.GetConnectionString(configParms);
    this.UpdateConnections(filePath, connectionString);this.InstallService(Path.Combine(configParms.FilePath, "LandaV9Service"));
}

还记得Tips4呢?若是在传递文件路径的时候只是写[APPDIR],而不是[APPDIR]\,那么程序运营到那边的时候,会抛“FileNotFound”很是!

下来来看一下切实可行的代码:

/// <summary>
/// 获取连接字符串
/// </summary>
/// <param name="op"></param>
/// <returns></returns>
public string GetConnectionString(Parameters op)
{
    return string.Format("Data Source={0};Initial Catalog=LandaEntryManager;Persist Security Info=True;User ID={1};Password={2}", op.DataSource, op.UserId, op.Password);
}

/// <summary>
/// 更新连接字符串
/// </summary>
/// <param name="filePath"></param>
/// <param name="conn"></param>
public void UpdateConnections(string filePath, string conn)
{
    XmlDocument xmlDocument = new XmlDocument();
    xmlDocument.Load(filePath);
    XmlElement xmlElement = (XmlElement)xmlDocument.SelectSingleNode("/configuration/connectionStrings/add[@name='LandaEntryManager']");
    if (xmlElement != null)
        xmlElement.SetAttribute("connectionString", conn);
    xmlDocument.Save(filePath);
}

再来看安装服务:

/// <summary>
/// 安装服务
/// </summary>
/// <param name="filePath"></param>
public void InstallService(string filePath)
{
    Environment.CurrentDirectory = filePath;
    Process process = new Process();
    process.StartInfo.UseShellExecute = false;
    process.StartInfo.FileName = "Install.bat";
    process.StartInfo.CreateNoWindow = true;
    process.StartInfo.Verb = "runas";  //主要设置为以管理员启动
    process.Start();
}

有安装就有起步,可是要是紧跟其后写运行服务,会唤起找不到服务,安装程序就会出错。

博主想了四个主意,重写OnAfterInstall方法,在那一个法子里面写运行服务:

/// <summary>
/// 重启服务
/// </summary>
/// <param name="savedState"></param>
protected override void OnAfterInstall(IDictionary savedState)
{
    ServiceController serviceController = new ServiceController("LandaInformationServiceV9");
    serviceController.Start();
    base.OnAfterInstall(savedState);
}

那般就没难点了!

在这一个程序集里面可以自定义你想做的别样事情,比如,还原数据库等等。

七、后记

本次教程到此截至,那也是博主在这几天假日寻觅出来的,要是有不当之处,尽请指正!

屈居Advanced Installer的官网地址:https://www.advancedinstaller.com/。

企望本文对您全数扶助。若是您觉得本文可以协助你,就点个赞吧。你的支撑是博主继续细水长流的不懈重力。

http://www.bkjia.com/C\_jc/1244022.htmlwww.bkjia.comtruehttp://www.bkjia.com/C\_jc/1244022.htmlTechArticle2018第一发:记一次【Advanced
Installer】打包之旅,2018先是发 ① 、前言
前年最终几天,你们都兴冲冲的跨年,博主还在加班制作.net安装包…

相关文章