
我相信很都完成了安装程序. 最大,最完整的功能是InstallShield,但是InstallShield的语法确实很难学习. 相反,vs.net的安装和部署简短而复杂,并且使用C#语法. 一般来说,C#开发人员非常容易使用. 经过研究,发现vs.net的安装和部署项目的功能也非常易于使用. 常规程序安装可以轻松实现. 在此过程中还发现了一些缺陷,将在后面提到.
以下是ASP.NET安装和部署项目的一些复杂的应用程序实现:
首先vs安装部署,我们假设有一个完整的Web项目eHRM,其文件列表如web.config中所示. 我们的连接和系统的其他一些配置,例如类型等,在安装过程中需要修改这些配置.
好,知道我们的安装对象,现在开始做安装和部署程序,首先,在解决方案中添加一个新项目,如图所示,项目类型为Web安装项目,项目名称为eHRMSetUp
添加项目后,选择eHRMSetUp,您将在工具栏中找到一些更改,如图所示,
有六个主要工具按钮和六个主要编辑器用于代码安装和部署:
1,表示文件系统编辑器,主要用于目标机器的文件安装操作.
2. 表示注册表编辑器,用于目标计算机的注册表操作.
3. 表示文件类型编辑器,用于将新文件类型安装到目标计算机.
4. 用户界面编辑器,用于确定安装过程中使用的某些界面.
5. 自定义操作编辑器,调用用户定义的操作代码.
6. 启动条件编辑器,用于设置安装程序的启动条件.
并非全部使用这6种编辑器,我们的演示安装仅需使用1/4/5
大多数安装软件包属性都存在于eHRMSetUp项目的属性中. 该属性界面如图所示:
您可以在此处设置相关的安装程序属性,例如产品名称(eHRMSetUp),产品编号(ProductCode)和安装程序包全球化类型(Localization).
除了eHRMSetUp安装和部署项目外,我们还需要添加一个eHRMSetUpCompenent项目以自定义安装操作,并向eHRMSetUpCompenent项目中添加一个新的安装程序类,如图

名称为eHRMInstaller.cs,向其中添加以下代码:
受保护的替代无效OnAfterInstall(IDictionary savedState)
{{{{pp>
Base.OnAfterInstall(savedState);
}
公共替代无效安装(IDictionary stateSaver)
{{{{pp>
Base.Install(stateSaver);
}
受保护的重写无效OnBeforeInstall(IDictionary savedState)
{{{{pp>
Base.OnBeforeInstall(savedState);
}
公共替代无效卸载(IDictionary savedState)
{{{{pp>
Base.Uninstall(savedState);

}
公共替代无效回滚(IDictionary savedState)
{{{{pp>
Base.Rollback(savedState);
}
这些代码将主要负责自定义安装中的操作,包括构建和配置web.config.
为了在安装和部署中调用项目eHRMSetUpCompenent定义的操作,需要将eHRMSetUpCompenent的主要输出和项目eHRM的内容输出添加到项目eHRMSetUp中. 具体操作是选择eHRMSetUp项目,右键单击-添加-项目输出-选择项目eHRMSetUpCompenent的主输出,如下图所示:
现在返回项目eHRMSetUp,打开文件系统编辑器,单击Web应用程序文件夹,编辑其属性,属性界面如下:
更重要的一个是VirtualDirectory属性,该属性指示安装后创建的虚拟目录的名称,其他属性取决于具体情况.
下面通过用户界面编辑器配置用户的安装界面. vs.net2003当前提供的窗口较少,如图所示:
基本上是几个相对简单的配置窗口,所以如果您需要使用一些复杂的配置,那么这些窗口远远不够,但是我们可以部分扩展以实现这些复杂的配置vs安装部署,具体方法如下:
1. 将Windows窗口FrmConfig.cs添加到项目eHRMSetUpCompenent中,以设计我们需要使用的界面.
2. 修改eHRMInstaller.cs中的代码,如下所示:
受保护的重写无效OnAfterInstall(IDictionary savedState)
{{{{pp>
FrmConfig _FC =新的FrmConfig();

_FC.ShowDialog();
Base.OnAfterInstall(savedState);
}
3. 这样,FrmConfig将在安装过程中被中断并弹出以供用户配置.
最后,在安装过程中通过自定义操作编辑器设置自定义操作,从eHRMSetUpCompenent(活动)的Web应用程序文件夹中选择主要输出,并如下所示添加它:
按如下所示设置四个主要输出的CustomActionData属性:
/ LogicDir = [TARGETDIR] / VitualDir = [TARGETVDIR]
[TARGETDIR]和[TARGETVDIR]是系统的内置属性,分别指示安装物理目录地址和虚拟目录地址.
设置这些自定义操作的传入参数后,可以直接在eHRMSetUpCompenent项目的代码中调用它们. 调用代码如下:
公共替代无效安装(IDictionary stateSaver)
{{{{pp>
//安装物理目录
String LogicDir = Context.Parameters [“ LogicDir”];
//安装虚拟目录
String VitualDir = Context.Parameters [“ VitualDir”];
//根据配置进行TODO安装操作

Base.Install(stateSaver);
}
最后要做的是在卸载时处理一些文件:
公共替代无效卸载(IDictionary savedState)
{{{{pp>
//安装物理目录
String LogicDir = Context.Parameters [“ LogicDir”];
//安装虚拟目录
String VitualDir = Context.Parameters [“ VitualDir”];
//处理自定义部件的安装内容,例如等.
Base.Uninstall(savedState);
}
完成这一系列操作后,整个程序的安装原型基本上可以. 只要在相应位置添加实际安装所需的一系列操作,就可以制作完整的安装和部署程序.
注意:
1. 资源文件属于项目的源文件,而不是内容文件,因此,如果项目中存在资源文件,则需要添加项目的源文件输出,并使用排除过滤器设置* .cs文件和* .resx文件的过滤.
2. 默认情况下,Bin目录不在Web项目中,因此打包还需要添加Web项目的主输出或直接将bin目录中的文件添加到Web项目中,因此生成的dll将包含在内容文件中输出.
3. 在安装和生产过程中可能未创建某些目录(我找不到特定原因,可能是由于文件依赖性),您可以直接在Web应用程序文件夹中手动创建它们.
级别是有限的. 如有任何疑问,请与我一起在hotmail.com上讨论daviciong
作者博客:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-193174-1.html
北洋没有
爱你