100165524.htm
来自「C#高级编程(第三版),顶死你们。。 。up」· HTM 代码 · 共 307 行 · 第 1/3 页
HTM
307 行
<p align="center"><span lang="EN-US"><img height="362" src="18/image009.jpg" width="466" alt="" /></span></p>
<p style="FTEL: 8.15pt" align="center"><span style="FONT-FAMILY: 宋体">图</span><span lang="EN-US"> 18-9</span></p>
<p class="1" style="MARGIN-LEFT: 37.55pt; FTEL: -16.1pt"><span lang="EN-US">●<span style="FONT: 7pt 'Times New Roman'"> </span></span><span lang="EN-US">Install</span><span style="FONT-FAMILY: 宋体">:动作在安装阶段的最后执行</span></p>
<p class="1" style="MARGIN-LEFT: 37.55pt; FTEL: -16.1pt"><span lang="EN-US">●<span style="FONT: 7pt 'Times New Roman'"> </span></span><span lang="EN-US">Commit</span><span style="FONT-FAMILY: 宋体">:动作在安装完成后执行,不记录错误</span></p>
<p class="1" style="MARGIN-LEFT: 37.55pt; FTEL: -16.1pt"><span lang="EN-US">●<span style="FONT: 7pt 'Times New Roman'"> </span></span><span lang="EN-US">Rollback</span><span style="FONT-FAMILY: 宋体">:动作在回退阶段完成后执行</span></p>
<p class="1" style="MARGIN-LEFT: 37.55pt; FTEL: -16.1pt"><span lang="EN-US">●<span style="FONT: 7pt 'Times New Roman'"> </span></span><span lang="EN-US">Uninstall</span><span style="FONT-FAMILY: 宋体">:动作在卸载完成后执行</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">要添加动作,首先选择要执行动作的安装阶段。再从</span><span lang="EN-US">Action</span><span style="FONT-FAMILY: 宋体">菜单中选择</span><span lang="EN-US">Add Custom Action</span><span style="FONT-FAMILY: 宋体">菜单选项,打开文件系统对话框,这表示包含动作的组件必须是部署项目的一部分。由于动作在要部署的目标机器上执行,所以应列在文件系统编辑器中。</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">在添加完动作后,可以从表</span><span lang="EN-US">18-7</span><span style="FONT-FAMILY: 宋体">中选择一个或多个属性。</span></p>
<p class="a5" style="MARGIN-TOP: 8.15pt"><span style="FONT-FAMILY: 黑体">表</span><span lang="EN-US"> 18-7</span></p>
<p class="MsoNormal">
<table class="MsoNormalTable" style="BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-COLLAPSE: collapse; BORDER-BOTTOM-STYLE: none" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BORDER-LEFT-WIDTH: 1pt; BORDER-LEFT-COLOR: windowtext; PADDING-BOTTOM: 0cm; WIDTH: 92.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid" valign="top" width="124">
<p class="a5" style="MARGIN-TOP: 0cm"><span style="FONT-FAMILY: 黑体">参</span><span lang="EN-US"> </span><span style="FONT-FAMILY: 黑体">数</span></p>
</td>
<td style="PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 348.9pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none" valign="top" width="465">
<p class="a5" style="MARGIN-TOP: 0cm"><span style="FONT-FAMILY: 黑体">命令行参数</span></p>
</td>
</tr>
<tr>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 92.75pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT-STYLE: none" valign="top" width="124">
<p class="a4" style="MARGIN-LEFT: 10.7pt"><span lang="EN-US">Condition</span></p>
</td>
<td style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 348.9pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none" valign="top" width="465">
<p class="a4" style="MARGIN-LEFT: 5.35pt"><span lang="EN-US">Windows Installer</span><span style="FONT-FAMILY: 宋体">条件,若要执行动作,该条件必须为</span><span lang="EN-US">true</span></p>
</td>
</tr>
<tr>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 92.75pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT-STYLE: none" valign="top" width="124">
<p class="a4" style="MARGIN-LEFT: 10.7pt"><span lang="EN-US">CustomDataAction</span></p>
</td>
<td style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 348.9pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none" valign="top" width="465">
<p class="a4" style="MARGIN-LEFT: 5.35pt"><span style="FONT-FAMILY: 宋体">可用于动作的定制数据</span></p>
</td>
</tr>
<tr>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 92.75pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT-STYLE: none" valign="top" width="124">
<p class="a4" style="MARGIN-LEFT: 10.7pt"><span lang="EN-US">EntryPoint</span></p>
</td>
<td style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 348.9pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none" valign="top" width="465">
<p class="a4" style="MARGIN-LEFT: 5.35pt"><span style="FONT-FAMILY: 宋体">包含动作的定制</span><span lang="EN-US">DLL</span><span style="FONT-FAMILY: 宋体">的入口。如果动作包含在可执行文件中,这个属性就不起作用</span></p>
</td>
</tr>
<tr>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 92.75pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT-STYLE: none" valign="top" width="124">
<p class="a4" style="MARGIN-LEFT: 10.7pt"><span lang="EN-US">InstallerClass</span></p>
</td>
<td style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 348.9pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none" valign="top" width="465">
<p class="a4" style="MARGIN-LEFT: 5.35pt"><span style="FONT-FAMILY: 宋体">布尔值,如果设置为</span><span lang="EN-US">true</span><span style="FONT-FAMILY: 宋体">,就指定动作是一个</span><span lang="EN-US">.NET</span><span style="FONT-FAMILY: 宋体">类</span><span lang="EN-US">ProjectInstaller</span></p>
</td>
</tr>
<tr>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 92.75pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT-STYLE: none" valign="top" width="124">
<p class="a4" style="MARGIN-LEFT: 10.7pt"><span lang="EN-US">Name</span></p>
</td>
<td style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 348.9pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none" valign="top" width="465">
<p class="a4" style="MARGIN-LEFT: 5.35pt"><span style="FONT-FAMILY: 宋体">动作的名称,默认为动作的文件名</span></p>
</td>
</tr>
<tr>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 92.75pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT-STYLE: none" valign="top" width="124">
<p class="a4" style="MARGIN-LEFT: 10.7pt"><span lang="EN-US">SourcePath</span></p>
</td>
<td style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 348.9pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none" valign="top" width="465">
<p class="a4" style="MARGIN-LEFT: 5.35pt"><span style="FONT-FAMILY: 宋体">动作在开发机器上的路径</span></p>
</td>
</tr>
</tbody>
</table>
</p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="LINE-HEIGHT: 17.6pt"><span style="FONT-FAMILY: 宋体">由于动作是在部署项目外部开发的代码,所以可以给应用程序自由添加专业化的外观。但要注意这些动作都在相关的阶段完成后发生。如果选择</span><span lang="EN-US">Install</span><span style="FONT-FAMILY: 宋体">阶段,动作就会在安装阶段完成后发生。如果要在该过程之前执行动作,就应创建一个启动条件。</span></p>
<h4 style="FTEL: 21.45pt"><span lang="EN-US">6. </span><span style="FONT-FAMILY: 黑体">启动条件编辑器</span></h4>
<p class="MsoNormal" style="LINE-HEIGHT: 17.6pt"><span style="FONT-FAMILY: 宋体">启动条件编辑器允许指定在安装继续之前必须满足的一些条件。启动条件可以分为不同的条件类型。基本启动条件是</span><span lang="EN-US">File Search</span><span style="FONT-FAMILY: 宋体">、</span><span lang="EN-US">Registry Search</span><span style="FONT-FAMILY: 宋体">和</span><span lang="EN-US">Windows Installer Search</span><span style="FONT-FAMILY: 宋体">。在编辑器第一次启动时,会看到两个组</span><span lang="EN-US">Search Target Machine</span><span style="FONT-FAMILY: 宋体">和</span><span lang="EN-US">Launch Conditions</span><span style="FONT-FAMILY: 宋体">,如图</span><span lang="EN-US">18-10</span><span style="FONT-FAMILY: 宋体">所示。一般需要进行搜索,根据该搜索的成功或失败来执行条件。这是通过设置搜索的</span><span lang="EN-US">Property</span><span style="FONT-FAMILY: 宋体">属性来实现的。可以在安装过程中访问</span><span lang="EN-US">Property</span><span style="FONT-FAMILY: 宋体">属性,在其他动作的</span><span lang="EN-US">Condition</span><span style="FONT-FAMILY: 宋体">属性中也可以检查该属性。还可以在编辑器中添加</span><span lang="EN-US">Launch Condition</span><span style="FONT-FAMILY: 宋体">。在这个添加中把</span><span lang="EN-US">Condition</span><span style="FONT-FAMILY: 宋体">属性设置为搜索的</span><span lang="EN-US">Property</span><span style="FONT-FAMILY: 宋体">属性值。在条件中可以指定一个</span><span lang="EN-US">URL</span><span style="FONT-FAMILY: 宋体">,用于下载所搜索的文件、注册键或安装组件。注意在图</span><span lang="EN-US">18-10</span><span style="FONT-FAMILY: 宋体">中,默认添加了一个</span><span lang="EN-US">.NET Framework</span><span style="FONT-FAMILY: 宋体">条件。</span></p>
<p class="MsoNormal" style="LINE-HEIGHT: 17.6pt"><span lang="EN-US">File Search</span><span style="FONT-FAMILY: 宋体">搜索文件或文件类型。可以设置许多不同的、与文件相关的属性,来确定如何搜索文件,这些属性包括文件名、文件夹位置、各种日期值,版本信息和大小。还可以设置要搜索的子文件夹数目。</span></p>
<p class="MsoNormal" style="LINE-HEIGHT: 17.6pt"><span lang="EN-US">Registry Search</span><span style="FONT-FAMILY: 宋体">允许搜索键和值,还允许设置搜索的根键。</span></p>
<p class="MsoNormal" style="LINE-HEIGHT: 17.6pt"><span lang="EN-US">Windows Installer Search</span><span style="FONT-FAMILY: 宋体">搜索指定的安装组件。这个搜索由</span><span lang="EN-US">GUID</span><span style="FONT-FAMILY: 宋体">执行。</span></p>
<p class="MsoNormal" style="LINE-HEIGHT: 17.6pt"><span style="FONT-FAMILY: 宋体">启动条件编辑器提供了两个预打包的启动条件,一个是</span><span lang="EN-US">.NET Framework</span><span style="FONT-FAMILY: 宋体">启动条件,它允许搜索运行库的特定版本,另一个启动条件是搜索</span><span lang="EN-US">MDAC</span><span style="FONT-FAMILY: 宋体">的特定版本,该搜索使用注册表搜索,来查找相关的</span><span lang="EN-US">MDAC</span><span style="FONT-FAMILY: 宋体">注册表项。</span></p>
<p align="center"><span lang="EN-US"><img height="361" src="18/image010.jpg" width="469" alt="" /></span></p>
<p style="FTEL: .0001pt" align="center"><span style="FONT-FAMILY: 宋体">图</span><span lang="EN-US"> 18-10</span></p></div>
<!-- page -->
<div class="page" style="text-align: center">
<a href="100165523.htm">上一页</a> <a href="index.html">首页</a> <a href="100165525.htm">下一页</a>
</div>
<div style="margin: 0px auto; width: 700px; border: solid 1px #0b5f98;">
<div style="float: left; width: 16px; background-color: #0b5f98; color: White; padding: 1px;">
图书导读
</div>
<div style="float: right; width: 670px; text-align: left; line-height: 16pt; padding-left: 2px">
<!--导读-->
<h1 id="divCurrentNode2" style="color: #b83507; width: 100%; text-align: left; font-size: 12px; padding-left: 2px">当前章节:<a href='100165524.htm'><font color='red'>18.5.3 高级选项</font></a></h1>
<div id="divRealteNod2" style="padding-left: 2px">
<div style='float:left;width:49%'>·<a href='100165521.htm'>18.5 Installer项目</a></div><div style='float:right;width:49%'>·<a href='100165522.htm'>18.5.1 Windows Installer</a></div><div style='float:left;width:49%'>·<a href='100165523.htm'>18.5.2 创建安装程序</a></div><div style='float:right;width:49%'>·<a href='100165525.htm'>18.6 小结</a></div><div style='float:left;width:49%'>·<a href='100165526.htm'>19.1 创建Windows窗体应用程序</a></div><div style='float:right;width:49%'>·<a href='100165527.htm'>19.2 Control类</a></div></div>
</div>
</div>
</div>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?