关闭

关闭

关闭

封号提示

内容

首页 很不错的制作安装程序详解

很不错的制作安装程序详解.doc

很不错的制作安装程序详解

林无忧 2011-01-18 评分 0 浏览量 0 0 0 0 暂无简介 简介 举报

简介:本文档为《很不错的制作安装程序详解doc》,可适用于IT/计算机领域,主题内容包含安装程序的制作、安装程序的制作、Net框架、数据库打包、卸载功能实现先新建一个安装部署项目:然后在应用程序文件夹将所需打包的文件添加进来:xBeNX符等。

安装程序的制作、安装程序的制作、Net框架、数据库打包、卸载功能实现先新建一个安装部署项目:然后在应用程序文件夹将所需打包的文件添加进来:xBeNXVwbmp(KB)原创安装程序的制作、Net框架打包、卸载功能实现:并且把netframework也包含进去可以到网上去下个。xDIuQVcbmp(KB)原创安装程序的制作、Net框架打包、卸载功能实现:如果希望自己做的安装程序的exe文件变漂亮点可以把图标文件也一并打包进去PlklKlAbmp(KB)原创安装程序的制作、Net框架打包、卸载功能实现:然后可以把自己的安装程序的快捷方式放到用户桌面和开始菜单里面:adzWZqbmp(KB)原创安装程序的制作、Net框架打包、卸载功能实现:下一步:CfKLdRbmp(KB)原创安装程序的制作、Net框架打包、卸载功能实现:把快捷方式剪切到用户桌面文件夹:yZhLQnEdbmp(KB)原创安装程序的制作、Net框架打包、卸载功能实现:同时可以在用户的程序文件夹下新建一个文件夹自己随便命名的并把快捷方式也剪切进去:aFgzTgTbmp(KB)原创安装程序的制作、Net框架打包、卸载功能实现:然后设置快捷方式的图标以便你的安装程序变漂亮:选中快捷方式选属性窗口(注意:不是右键>属性)里面有icon属性然后选择先前放入的图标:SoXjCdnbmp(KB)原创安装程序的制作、Net框架打包、卸载功能实现:pvKmTbmp(KB)原创安装程序的制作、Net框架打包、卸载功能实现:接着就是如何把netframework打包进去了:如图:tNORZTbmp(KB)原创安装程序的制作、Net框架打包、卸载功能实现:选择项目>属性(右键)>系统必备:FgBfMTebmp(KB)原创安装程序的制作、Net框架打包、卸载功能实现:LyOuvUbmp(KB)原创安装程序的制作、Net框架打包、卸载功能实现:一般默认的都是如图所示:gwEkbnDUbmp(KB)原创安装程序的制作、Net框架打包、卸载功能实现:把”从与我的应用程序相同的位置下载系统必备组件“选上:LSoQCjabmp(KB)原创安装程序的制作、Net框架打包、卸载功能实现:然后就是怎么添加卸载程序了:先生成项目解决方案然后添加一个新的Windows项目把自动生成的formcs删除在programcs下先引用:SystemDiagnostics再按照要求写下代码如图所示:XuOAHyXrbmp(MB)原创安装程序的制作、Net框架打包、卸载功能实现:AXDismbmp(KB)原创安装程序的制作、Net框架打包、卸载功能实现:电击安装程序的项目查看属性(注意:不是右键)找到ProductCode属性把那段code复制下来然后在programcs把原来的STAThreadstaticvoidMain(){ApplicationEnableVisualStyles()ApplicationSetCompatibleTextRenderingDefault(false)ApplicationRun(newForm())}覆盖成:STAThreadstaticvoidMain(){if(SystemEnvironmentOSVersionToString()IndexOf("NT")>=){ProcessStart("msiexec","uninstall{ABAEBEFEFBCACF}")BDACFCCAFEFB就是第部的ProductCode}ApplicationExit()}uninstall后面的就是前面所说的那个code了包括括号的。CVtgITkbmp(KB)原创安装程序的制作、Net框架打包、卸载功能实现:NmPBvbmp(KB)原创安装程序的制作、Net框架打包、卸载功能实现:然后再生成解决方案再在应用程序文件夹右键添加项目输出把卸载程序生成的exe文件添加进去这样就好了安装程序就做完了但是我们在安装的时候往往在program文件夹下要生成两级目录安装这个要按如下设置:点击应用程序文件夹查看属性(不是右键的vs右边的属性窗口里的)找到defaultlocation属性你可以把里面的字符串中manufacture字符删除这样在安装的时候就不会出现两级目录的情况了。AiXsOMeNbmp(KB)原创安装程序的制作、Net框架打包、卸载功能实现:终于完了将数据库打包进安装程序里可以看这个帖子的楼和楼:http:bbsbccnnetviewthreadphptid=extra=page=#如何在安装包中自动为客户创建数据库步骤:、添加一个新项目>选择类库模板>命名为DBCustomAction、单击项目右键>添加新项>选择安装程序类(命名为DBCustomActioncs)、在服务器资源管理器中添加>连接到数据库>指定用户密码(选择允许保存密码)>数据库选择master、切换到DBCustomActioncs的视图状态>将服务器资源管理器数据库连接中的masterdbo拖动到designer中、添加一个新项sqltxt(注意要使用小写),输入下列sql代码:CREATETABLEdboMKEmployees(Namechar()COLLATESQLLatinGeneralCPCIASNOT,Rsvpint,Requestsnvarchar()COLLATESQLLatinGeneralCPCIAS)ONPRIMARYALTERTABLEdboMKEmployeesWITHNOCHECKADDCONSTRAINTPKMKEmployeesPRIMARYKEYCLUSTERED(Name)ONPRIMARY(PS:也可以直接用SqlServer导出)、在sqltxt的右键属性中>生成操作>嵌入的资源、将DBCustomActioncs切换到代码视图,添加下列代码:privatestringGetSql(stringName){try{AssemblyAsm=AssemblyGetExecutingAssembly()Streamstrm=AsmGetManifestResourceStream(AsmGetName()Name""Name)StreamReaderreader=newStreamReader(strm)returnreaderReadToEnd()}catch(Exceptionex){ConsoleWrite("InGetSql:"exMessage)throwex}}privatevoidExecuteSql(stringDataBaseName,stringSql){SystemDataSqlClientSqlCommandCommand=newSystemDataSqlClientSqlCommand(Sql,sqlConnection)CommandConnectionOpen()CommandConnectionChangeDatabase(DataBaseName)try{CommandExecuteNonQuery()}finally{CommandConnectionClose()}}protectedvoidAddDBTable(stringstrDBName){try{ExecuteSql("master","CREATEDATABASE"strDBName)ExecuteSql(strDBName,GetSql("sqltxt"))}catch(Exceptionex){ConsoleWrite("Inexceptionhandler:"exMessage)}}publicoverridevoidInstall(SystemCollectionsIDictionarystateSaver){baseInstall(stateSaver)AddDBTable(thisContextParameters"dbname")}、再添加一个新项目,(选择添加到解决方案中)>项目类型为安装项目>命名为DBCustomActionInstaller、选择应用程序文件夹>添加>项目输出>主输出、在方案资源管理器中>右键安装项目(DBCustomActionInstaller)>视图>用户界面、选中启动结点>添加对话框>文本A、选动文本框A>右键>上移一直到最顶端、选择文本框A属性>修改BannerText,(SpecifyDatabaseName)、修改BodyText(Thisdialogallowsyoutospecifythenameofthedatabasetobecreatedonthedatabaseserver)、修改EditLabel(NameofDB),修改EditPorperty(CUSTOMTEXTA),将其他Edit,,的Edit(,,)Visible属性设为false、在方案资源管理器中>右键安装项目(DBCustomActionInstaller)>视图>自定义操作、选中安装结点>添加>双击应用程序文件夹>主输出来自DBCustomAction(活动)>右键属性>CustomActiveData属性修改为dbname=CUSTOMTEXTA、编译生成,OK!Net程序打包安装与卸载制作问题描述(一)Net程序打包安装与卸载制作问题描述(一)      项目已将近完工,怎样将你的程序打包包装成一个完美的安装程序呢今天我将我个人使用Net制作打包程序的经验分享给大家,不足之处还希望大家能够给予指正。面对对Net平台开发出来的程序它的运行对系统环境要求有点高需要NetFramework的支持,所以首先面对的问题是怎样将NetFramework或安装在一台没有以前没有装过的机子上。以下是我在打包过程中需要解决的问题:一.怎样将NET程序部署到没有安装NETFramwork的机器上二.怎样在打包程序中自动安装SQLServer数据库?三.怎样将MSDESp打包进Net安装项目中?四.怎样将MDAC打包进Net安装项目中?五.怎样制作Net卸载程序? 六.怎样创建各种快捷方式?Net程序打包安装与卸载制作怎样将Net程序部署到没有安装NetFramwork的机器上?(二)怎样将Net程序部署到没有安装NetFramwork的机器上? 部署在Net平台下开发的应用程序需要安装安装对应版本的NetFramwork,而VsualStudio并没有提供一起打包的功能所以这一点估计大多开发者都感觉不是太好那如何将NetFramework安装部署到客户机上呢? 其实微软提供了我们一个安装引导插件(MicrosoftVisualStudioNET引导程序插件)可以帮助我们在打包时它会自动将NetFramework打包放入你的安装程序中完成了我们想要的功能。 建立安装程序项目将自己需要打包的程序加入进去编译过后你会注意到在生成的安装目录下你将会注意到多了几个文件(dotnetfxexe、Configini、langpackexe、Settingsini)详细介绍如下:Configini安装配置文件dotnetfxexeNetFramework组件langpackexe语言包Settings设置文件ItemSoftmsimsi安装文件Setupexe主安装程序Config的文件内容如下:configiniIDSNOTSINGLEINSTANCE=已有另一版本的安装程序正在运行。该应用程序一次只能运行一个版本。IDSDIALOGCAPTION=s安装IDSSINGLEINSTANCEFAIL=CreateMutex无法对单个的实例检查分配句柄。IDSSETUPFAILURE=s安装失败。如果问题继续存在请与产品支持人员联系。IDSDEFAULTPRODUCTNAME=应用程序IDSSETTINGSINITFAILURE=安装设置文件's'在解析时出错或者无法定位该文件。IDSCREATEPROCESSFAILURE=下列命令行的CreateProcess操作失败:s。IDSINSUFFICIENTPRIVILEGES=运行s安装程序要求具有本地系统管理员的权限。安装程序现在退出。IDSDIALOGTEXT=单击"确定"开始安装。单击"取消"退出安装。IDSERRORCAPTION=s安装错误IDSVERSIONDETECTFAILED=的版本检测失败。请确保安装程序存在于指定位置。nn返回消息:IDSMSINOTFOUND=无法定位产品安装程序's'。安装程序现在退出。IDSREBOOTQUERY=安装完成。现在重启吗IDSSETUPSUCCEEDED=安装成功。IDSINVALIDLANGIDCAPTION=无效的语言包代码IDSFXNOTFOUND=无法定位NETframeworkexe文件's'。安装程序现在退出。IDSINVALIDLANGIDMESSAGE=语言包代码s无效。跳过IDSLANGPACKNOTFOUND=无法定位语言包s。安装程序现在退出。IDSMDACNOTFOUND=无法定位MDACexe文件's'。安装程序现在退出。IDSFILENOTFOUND=无法定位''。安装程序现在退出。Settingsini文件内容如下:BootstrapMsiPath=ItemSoftmsimsi安装文件ProductName=中国亿万电器成套报价系统安装产品名称MdacVersion=BootstrapFx=trueFxInstallerPath=LanguageID=BootstrapLangPack=trueLangPackInstallerPath=BootstrapMdac=trueMdacInstallerPath=这种方法能够很简单的将NetFramwork与你的应用程序一起打包到安装程序中并且自动检测客机上的是否安装过NetFramework,然后运行安装。相信大家一定能够喜欢这个插件。Net程序打包安装与卸载制作怎样在打包程序中自动安装SQLServer数据库(三)? 怎样在打包程序中自动安装SQLServer数据库?、创建安装项目“Setup”安装项目在“文件”菜单上指向“添加项目”然后选择“新建项目”。在“添加新项目”对话框中选择“项目类型”窗格中的“安装和部署项目”然后选择“模板”窗格中的“安装项目”。在“名称”框中键入“setup”。单击“确定”关闭对话框。项目被添加到解决方案资源管理器中并且文件系统编辑器打开。在“属性”窗口中选择ProductName属性并键入”亿万电器成套报价系统”。 、在安装项目中创建安装程序类(installcs)。添加创建数据库(InstallDatabasetxt)、删除数据库(DropDatabasetxt)、初始化数据基本数据(InitializeDatatxt)脚本文件将属性“生成操作”设为“嵌入的资源”。代码如下:usingSystemusingSystemCollectionsusingSystemComponentModelusingSystemConfigurationInstallusingSystemDatausingSystemDataSqlClientusingSystemIOusingSystemReflectionusingSystemTextRegularExpressionsusingSystemWindowsFormsusingSystemTextusingMicrosoftWin namespaceinstall{<summary>Installer的摘要说明。<summary>RunInstaller(true)publicclassInstaller:SystemConfigurationInstallInstaller{<summary>必需的设计器变量。<summary>stringconStr="packetsize=integratedsecurity=SSPI""datasource="(local)"persistsecurityinfo=False""initialcatalog=masterconnecttimeout="RijndaelCryptographyrijndael=newRijndaelCryptography()privateSystemComponentModelContainercomponents= publicInstaller(){该调用是设计器所必需的。InitializeComponent() TODO:在InitializeComponent调用后添加任何初始化} <summary>清理所有正在使用的资源。<summary>protectedoverridevoidDispose(booldisposing){if(disposing){if(components!=){componentsDispose()}}baseDispose(disposing)} #region组件设计器生成的代码<summary>设计器支持所需的方法不要使用代码编辑器修改此方法的内容。<summary>privatevoidInitializeComponent(){components=newSystemComponentModelContainer()}#endregion #region重载自定义安装方法protectedoverridevoidOnBeforeInstall(IDictionarysavedState){baseOnBeforeInstall(savedState)}publicoverridevoidInstall(IDictionarystateSaver){baseInstall(stateSaver)stringdatabaseServer=ContextParameters"server"ToString()stringuserName=ContextParameters"user"ToString()stringuserPass=ContextParameters"pwd"ToString()stringtargetdir=thisContextParameters"targetdir"ToString()conStr=GetLogin(databaseServer,userName,userPass,"master")SqlConnectionsqlCon=newSqlConnection() try{sqlConConnectionString=conStrsqlConOpen() rijndaelGenKey()rijndaelEncrypt(conStr) stateSaverAdd("key",rijndaelKey)stateSaverAdd("IV",rijndaelIV)stateSaverAdd("conStr",rijndaelEncrypted)ExecuteSql(sqlCon,"InstallDatabasetxt")ExecuteSql(sqlCon,"InitializeDatatxt")if(sqlConState!=ConnectionStateClosed)sqlConClose()}catch(SqlException){MessageBoxShow("安装失败!n数据库配置有误,请正确配置信息!","错误",MessageBoxButtonsOK,MessageBoxIconError)if(sqlConState!=ConnectionStateClosed)sqlConClose()thisRollback(stateSaver)} }protectedoverridevoidOnAfterInstall(IDictionarysavedState){baseOnAfterInstall(savedState)} publicoverridevoidRollback(IDictionarysavedState){baseRollback(savedState)}publicoverridevoidUninstall(IDictionarysavedState){baseUninstall(savedState)if(savedStateContains("conStr")){stringtargetdir=thisContextParameters"targetdir"ToString()RijndaelCryptographyrijndael=newRijndaelCryptography()rijndaelKey=(byte)savedState"key"rijndaelIV=(byte)savedState"IV"conStr=rijndaelDecrypt((byte)savedState"conStr")SqlConnectionsqlCon=newSqlConnection(conStr)ExecuteDrop(sqlCon)}}#endregion #region数据操作方法从资源文件获取中数据执行脚本privatestaticstringGetScript(stringname){Assemblyasm=AssemblyGetExecutingAssembly()Streamstr=asmGetManifestResourceStream(asmGetName()Name""name)StreamReaderreader=newStreamReader(str,SystemTextEncodingDefault)SystemTextStringBuilderoutput=newSystemTextStringBuilder()stringline=""while((line=readerReadLine())!=){outputAppend(line"n")}returnoutputToString() }获取数据库登录连接字符串privatestaticstringGetLogin(stringdatabaseServer,stringuserName,stringuserPass,stringdatabase){return"server="databaseServer"database="database"UserID="userName"Password="userPass"connecttimeout="}执行数据库脚本方法privatestaticvoidExecuteSql(SqlConnectionsqlCon,stringsqlfile){stringSqlLineRegexregex=newRegex("^GO",RegexOptionsIgnoreCase|RegexOptionsMultiline)stringtxtSQL=GetScript(sqlfile)SqlLine=regexSplit(txtSQL) if(sqlConState!=ConnectionStateClosed)sqlConClose()sqlConOpen() SqlCommandcmd=sqlConCreateCommand()cmdConnection=sqlCon foreach(stringlineinSqlLine){if(lineLength>){cmdCommandText=linecmdCommandType=CommandTypeTexttry{cmdExecuteNonQuery()}catch(SqlExceptionex){rollbackstringss=exMessageExecuteDrop(sqlCon)break}}}}删除数据库privatestaticvoidExecuteDrop(SqlConnectionsqlCon){if(sqlConState!=ConnectionStateClosed)sqlConClose()sqlConOpen()SqlCommandcmd=sqlConCreateCommand()cmdConnection=sqlConcmdCommandText=GetScript("DropDatabasetxt")cmdCommandType=CommandTypeTextcmdExecuteNonQuery()sqlConClose()}#endregion}单击“生成”菜单下“生成解决方案”生成installdll安装类文件。、将“主程序”项目的输出添加到部署项目中在“文件系统编辑器”中选择“应用程序文件夹”单击右键指向“添加”添加“项目输出”。在“添加项目输出组”对话框中选择“项目”下拉表框中选择你的主安装程序类如上面的“install”。从列表框中选择“主输出”组然后单击“确定”关闭。、创建自定义安装对话框在解决方案资源管理器中选择安装项目“Setup”项目在“视图”菜单上指向“编辑器”然后选择“用户界面”。在用户界面编辑器具中选择“安装”下的“启动”节点。在“操作”菜单上选择“添加对话框”。在“添加对话框”中选择“文本框(A)”对话框然后单击“确定”关闭对话框。在“操作”菜单上选择“上移”重复此步骤移到“安装文件夹”上。在“文本框(A)”上单击“属性窗口”设置如下图所示:、建自定义操作在解决方案资源管理器中选择安装项目“Setup”项目在“视图”菜单上指向“编辑器”然后选择“自定义操作”。在“自定义操作编辑器”中选择“安装”节点。单击右键“添加自定义操作”在选择项目中的项中选择“应用程序文件夹”选择“主输出来自install(活动)”。在“属性窗口”中选择“CustomActionData”属性并键入“server=EDITAuser=EDITApwd=EDITAtargetdir="TARGETDIR"”。 附:targetdir="TARGETDIR"是安装后的目标路径为了在install类中获得安装后的路径我们设置此参数。单击“生成”菜单下的“生成解决方案”编译安装项目。Net程序打包安装与卸载制作怎样将MSDESp打包进Net安装项目中?(四) 怎样将MSDESp打包进Net安装项目中?、创建安装项目“Setup”安装项目在“文件”菜单上指向“添加项目”然后选择“新建项目”。在“添加新项目”对话框中选择“项目类型”窗格中的“安装和部署项目”然后选择“模板”窗格中的“安装项目”。在“名称”框中键入“setup”。单击“确定”关闭对话框。项目被添加到解决方案资源管理器中并且文件系统编辑器打开。在“属性”窗口中选择ProductName属性并键入”亿万电器成套报价系统”。、下载MSDESp安装程序与MSI安装文件修改器(Orca)工具。、选择“文件系统编辑器”在“视图“菜单上指向“添加”然后选择“合并模块…”(MergeMoudle)在添加模块中找到MSDEsp安装文件所在目录将MSM和MSM下的所有文件添加进来。在安装项目Setup的属性(Properties)中的“SearchPath”,添加MSM和MSM目录。单击“生成菜单下的“生成解决方案”编译Setup安装项目工程。用OrcaMSI安装文件修改器打开生成的安装包(Setupmsi)文件在左列的表栏中选择“InstallExecuteSequence”表修改下面的属性值:GetSqlStatesXXXXXX改成RemoveExistingProducts值改成InstallInitialize值改成在InstallUISequence选择“InstallUISequence”表修改下面的值:GetSqlStatesXXXXXX改成选择“Property”表添加以下三个属性:SqlInstanceName:MSDEDH实例服务名SqlSecurityMode:SQL(不加这行确实也行就是没办法用SQL模式登录)SqlSaPwd:sa的密码 连接测试:单击修改过的Setupmsi安装文件确认是否能够安装osqlS机器名MSDEDH实例服务名UsaPsa密码能够进去>OK!打包成功!Net程序打包安装与卸载制作怎样将MDAC打包进Net安装项目中?(五) 在“解决方案资源管理器”选择Setup安装项目工程选择“视图”菜单指向“启动条件”打开“启动条件”管理器。在"启动条件"管理器中右键点击"目标计算机上的要求"在弹出的的菜单中选择"添加注册表启动条件"。你会发现在"搜索目标计算机"中多了一项"搜索RegistryEntry"在"启动条件"中多了一项"Condition"。选择"搜索RegistryEntry"在"属性"对话框中填写如下内容:Property:MDACSEARCHRegKey:SoftwareMicrosoftDataAccessRoot:vsdrrHKLMValue:FullInstallVer选择"Condition"在"属性"对话框中填写如下内容:Condition:MDACSEARCH>=""进行这一步是因为在安装NET框架的时候需要MDAC。Net程序打包安装与卸载制作怎样制作Net卸载程序?(六) 方法一:在打包项目中添加文件msiexecexe(一般在c:windowssystem(系统目录中)找到)。在文件系统视图中选择应用程序文件在msiexecexe上单击右键选择“创建快捷方式”重命名快捷方式为“uninst”更改此快捷方式Argmuments为“x{产品ID}”产品ID的值为打包项目的ProductCode属性值。方法二:先生成安装包记下ProudctCode(选择解决方案资源管理根目录如Setup,再查看属性标签不是右键属性)下面用到用VsNet建立一个新的控制台程序uninstexe文件。代码如下:usingSystem namespaceuninst{<summary>Class的摘要说明。<summary>classUnInstall{<summary>应用程序的主入口点。<summary>STAThreadstaticvoidMain(stringargs){stringsysroot=SystemEnvironmentSystemDirectorySystemDiagnosticsProcessStart(sysroot"msiexecexe","x{FEDDEBABEDBDDBAFEC}qr")}}}编译过后将生成的uninstexe文件添加到安装包中重新生成安装项目Net程序打包安装与卸载制作怎样创建网页快捷方式(“开始与程序”菜单中)(七)如果你想在你的安装程序制作,在开始菜单中添加网页快捷方式,如果按照一般添加文件的方式添加时,你会发现添加不进去,怎么办呢方法很简单,解决方法如下:   将要添加的网页快捷方式选中按住鼠标不放将其拖入你的net安装程序中的用户的“程序”菜单或用户的“开始”菜单即可这样你的网页快捷方式就可以像创建其它文件一样的被创建在windows的开始菜单与程序菜单中了!呵~~为Net安装程序的设置一个*号密码框(八)ToolsTheonlytoolyouneedisORCAORCAisaMicrosoftutilityformodifyingandvalidatingWindowsInstallerpackagesItisadatabasetoolcreatedforsetupauthorsandadministratorswhoworkwiththeWindowsInstallerServiceThisutilityisapartoftheWindowsInstallerSDKdownloadalongwithotherMSIrelatedtoolsYoucanuseORCAtoopenandmodifyMSIpackagesTodownloadandinstallORCA,followthesesteps:​ VisittheSDKPlatformSitepagetodownloadtheWindowsInstallerSDKThelinktoWindowsInstallerSDKshouldbeonthelefthandsideframeontheabovesite​ ClickonthatlinktogotothenextpagetodownloadWindowsInstallerSDK,whichincludesORCA​ AfterdownloadingandinstallingWindowsInstallerSDK,gotoProgramFilesMicrosoftSDKBinfolderonthemachinetolookforOrcamsi​ RunOrcamsibydoubleclickingonit,whichisthesetuptoinstallORCAonyourmachine​ AfterinstallingORCAonyourmachine,youwillbeabletorightclickonanyMSIpackageandopenitinORCAUsingthecodeThefirstthingtodo,isgenerateourVSNETsetupprojectandidentifyourfuturepasswordtextboxYoucanseeEditPropertyinourexamplethatisEDITANow,westarttomodifytheMSItoenableourpasswordtextchangingattributesforourtextboxEDITAFirstofall,we’vetostartORCAandopentheMSIfilegeneratedbyVSNET,andgoto‘Control’tableNormally,alltextboxesarecalledCustomTextA,andwe’vetoidentifyourtextboxbyPropertycolumnInourcase,wecanseeourrow,has‘’asattributesLet’sgotoseewhatmeansthis‘’Theattributesaresetinbinaryformat,so‘’isandthisisindecimalformatNow,wecangotocontrolattributestablehereandcheckwhatattributesare,,Wecanseethatourtextboxhasthefollowingproperties:Enabled,SunkenandVisibleNow,checkthatthere’sanadvancepropertiestablefortextboxes,andthere’saPasswordpropertywithvalueNowwehavetoaddthispropertytotheinitialpropertyvalue()=,that’sournewpropertyvalueSetinattributescellandsavetheMSIFileNow,checkyourMSI,andyoucouldseethatourtextboxisapasswordtextbox!!!手把手教你用C#打包应用程序(安装程序)【卸载模块已添加】年月日星期六下午::新建安装部署项目打开VS,点击新建项目,选择:其他项目类型>安装与部署>安装向导(安装项目也一样),然后点击确定(详细见下图)此主题相关图片如下:HYPERLINK"http:hiphotosbaiducomsunxiangweipicitemcffadeaacjpg"t"blank":安装向导关闭后打开安装向导,点击下一步,或者直接点击完成:开始制作安装向导完成后即可进入项目文件夹:双击"应用程序文件夹"在右边的空白处右击,选择添加>文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来然后右击你的可执行文件,创建快捷方式,然后把快捷方式分别剪切或复制到左边的"用户的'程序'菜单"和"用户桌面"中这样安装程序安装安装完成后会在"开始>所有程序"和"桌面"上生成程序的快捷方式然后右击左边的"应用程序文件夹"打开属性对话框:将属性中的"defaultlocation"的路径中的"manufacturer"去掉,不然的话做好的安装程序默认安装目录会是"c:programmfile你的用户名安装解决方案名称"然后打开解决方案管理器,右击你的解决方案名称,选择属性:在打开的属性页中,选择"系统必备",在打开的系统必备页中,选中如下中的选择项,这个很重要!!!!!!!!!!选上以后,在生成的安装文件包中包含netframework组件(这个选项默认是没有选中的)好了,这样就完成了,然后点击"生成>生成解决方案",哈,生成成功!:制作完成现在打开解决方案文件夹下的debug文件夹,就可以看到生成的安装文件了【续】关于"卸载"功能的添加上面的文章只介绍了简单的生成安装的方法,但是在vsnet下并没有直接生成卸载程序的功能,所以我们只好用msi来实现了,原理我就不讲了,网上一搜一堆,我只讲操作,【】:在添加你的应用程序项目的时候多添加一个msiexecexe进去,这个文件在c:windowssystem文件夹下,添加进去以后,为了让他更像个卸载程序,把他的名字改成"Uninstallexe",当然这个关系不大,改不改都行的然后给他创建一个快捷方式,放到桌面或者"开始程序"中,我选择放在了开始菜单中,然后下面我们要的做的就是查找这个部署项目的ProductCode了,鼠标左键单击项目名称,记住是左键单击,然后点击属性标签,注意:不是右击的属性,这个区别很大,这时你就可以看到ProductCode了,然后打开你创建的那个快捷方式的属性对话框,在Aguements属性中输入"x{ProductCode}",

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +1积分

资料评分:

/37
1下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部

举报
资料