阅读:2908回复:2
installshield2010如何打包VS2005和AE9.3开发的程序?
installshield这个软件下了一些教程 写得都太简略 有没有详细的教程?求高手给我这个菜鸟详细解答一下!谢谢!还有那个脚本代码该怎么写:先判断 。net FrameWork 有没有安装?如果没有安装,先安装; 然后判断注册表AE有没有安装过,然后安装AE runtime,再然后就是AE破解文件 貌似很复杂 实在不知如何下手?
|
|
1楼#
发布于:2011-12-06 14:01
我照着<a href="http://bbs.esrichina-bj.cn/ESRI/ ... 0312;highlight=" target="_blank">http://bbs.esrichina-bj.cn/ESRI/ ... 0312;highlight=</a>的开发文档上的安装部署部分操作,但是最后没有打包成功?程序安装后好像又被卸载了,还有就是ArcEngine Runtime安装成功了,但没有被许可文件注册?我不懂脚本语言,把握的脚本语言粘贴如下,不知道是不是脚本语言的问题?还有如果安装成功后卸载时该怎么写脚本?<br/>//===========================================================================<br/>//<br/>// File Name: Setup.rul<br/>//<br/>// Description: Blank setup main script file<br/>//<br/>// Comments: Blank setup is an empty setup project. If you want to<br/>// create a new project via. step-by step instructions use the<br/>// Project Assistant.<br/>//<br/>//===========================================================================<br/><br/>// Included header files ----------------------------------------------------<br/>#include "ifx.h"<br/><br/><br/>//--------------------------------------------------------------------------- <br/>// OnFirstUIBefore<br/>//<br/>// First Install UI Sequence - Before Move Data<br/>//<br/>// The OnFirstUIBefore event is called by OnShowUI when the setup is<br/>// running in first install mode. By default this event displays UI allowing<br/>// the end user to specify installation parameters.<br/>//<br/>// Note: This event will not be called automatically in a<br/>// program...endprogram style setup.<br/>//---------------------------------------------------------------------------<br/>function OnFirstUIBefore()<br/> number nResult, nLevel, nSize, nSetupType;<br/> string szTitle, szMsg, szOpt1, szOpt2, szLicenseFile;<br/> string szName, szCompany, szTargetPath, szDir, szFeatures;<br/> BOOL bLicenseAccepted;<br/>begin <br/><br/> // Added in InstallShield 15 - Show an appropriate error message if<br/> // -removeonly is specified and the product is not installed.<br/> if( REMOVEONLY ) then<br/> Disable( DIALOGCACHE );<br/> szMsg = SdLoadString( IDS_IFX_ERROR_PRODUCT_NOT_INSTALLED_UNINST );<br/> SdSubstituteProductInfo( szMsg );<br/> MessageBox( szMsg, SEVERE );<br/> abort;<br/> endif;<br/> <br/> nSetupType = COMPLETE; <br/> szDir = TARGETDIR;<br/> szName = "";<br/> szCompany = "";<br/> bLicenseAccepted = FALSE;<br/><br/>// Beginning of UI Sequence<br/>Dlg_Start:<br/> nResult = 0;<br/><br/>Dlg_SdWelcome:<br/> szTitle = "";<br/> szMsg = "";<br/> //{{IS_SCRIPT_TAG(Dlg_SdWelcome)<br/> nResult = SdWelcome( szTitle, szMsg );<br/> //}}IS_SCRIPT_TAG(Dlg_SdWelcome)<br/> if (nResult = BACK) goto Dlg_Start;<br/><br/>Dlg_SdLicense2:<br/> szTitle = "";<br/> szOpt1 = "";<br/> szOpt2 = "";<br/> //{{IS_SCRIPT_TAG(License_File_Path)<br/> szLicenseFile = SUPPORTDIR ^ "License.rtf";<br/> //}}IS_SCRIPT_TAG(License_File_Path)<br/> //{{IS_SCRIPT_TAG(Dlg_SdLicense2)<br/> // nResult = SdLicense2Ex( szTitle, szOpt1, szOpt2, szLicenseFile, bLicenseAccepted, TRUE );<br/> //}}IS_SCRIPT_TAG(Dlg_SdLicense2)<br/> if (nResult = BACK) then<br/> goto Dlg_SdWelcome;<br/> else<br/> bLicenseAccepted = TRUE;<br/> endif;<br/><br/>Dlg_SdRegisterUser:<br/> szMsg = "";<br/> szTitle = "";<br/> //{{IS_SCRIPT_TAG(Dlg_SdRegisterUser) <br/> nResult = SdRegisterUser( szTitle, szMsg, szName, szCompany );<br/> //}}IS_SCRIPT_TAG(Dlg_SdRegisterUser)<br/> if (nResult = BACK) goto Dlg_SdLicense2;<br/><br/>Dlg_SetupType2: <br/> szTitle = "";<br/> szMsg = "";<br/> nResult = CUSTOM;<br/> //{{IS_SCRIPT_TAG(Dlg_SetupType2) <br/> nResult = SetupType2( szTitle, szMsg, "", nSetupType, 0 );<br/> //}}IS_SCRIPT_TAG(Dlg_SetupType2)<br/> if (nResult = BACK) then<br/> goto Dlg_SdRegisterUser;<br/> else<br/> nSetupType = nResult;<br/> if (nSetupType != CUSTOM) then<br/> szTargetPath = TARGETDIR;<br/> nSize = 0;<br/> FeatureCompareSizeRequired( MEDIA, szTargetPath, nSize );<br/> if (nSize != 0) then <br/> MessageBox( szSdStr_NotEnoughSpace, WARNING );<br/> goto Dlg_SetupType2;<br/> endif;<br/> endif; <br/> endif;<br/><br/>Dlg_SdAskDestPath2:<br/> if ((nResult = BACK) ;; (nSetupType != CUSTOM)) goto Dlg_SetupType2;<br/> szTitle = "";<br/> szMsg = "";<br/> if (nSetupType = CUSTOM) then<br/> //{{IS_SCRIPT_TAG(Dlg_SdAskDestPath2) <br/> nResult = SdAskDestPath2( szTitle, szMsg, szDir );<br/> //}}IS_SCRIPT_TAG(Dlg_SdAskDestPath2)<br/> TARGETDIR = szDir;<br/> endif;<br/> if (nResult = BACK) goto Dlg_SetupType2;<br/><br/>Dlg_SdFeatureTree: <br/> if ((nResult = BACK) ;; (nSetupType != CUSTOM)) goto Dlg_SdAskDestPath2;<br/> szTitle = "";<br/> szMsg = "";<br/> szFeatures = "";<br/> nLevel = 2;<br/> if (nSetupType = CUSTOM) then<br/> //{{IS_SCRIPT_TAG(Dlg_SdFeatureTree) <br/> nResult = SdFeatureTree( szTitle, szMsg, TARGETDIR, szFeatures, nLevel );<br/> //}}IS_SCRIPT_TAG(Dlg_SdFeatureTree)<br/> if (nResult = BACK) goto Dlg_SdAskDestPath2; <br/> endif;<br/><br/>Dlg_SQLServer:<br/> nResult = OnSQLServerInitialize( nResult );<br/> if( nResult = BACK ) goto Dlg_SdFeatureTree;<br/><br/>Dlg_ObjDialogs:<br/> nResult = ShowObjWizardPages( nResult );<br/> if (nResult = BACK) goto Dlg_SQLServer;<br/> <br/>Dlg_SdStartCopy2:<br/> szTitle = "";<br/> szMsg = "";<br/> //{{IS_SCRIPT_TAG(Dlg_SdStartCopy2) <br/> nResult = SdStartCopy2( szTitle, szMsg ); <br/> //}}IS_SCRIPT_TAG(Dlg_SdStartCopy2)<br/> if (nResult = BACK) goto Dlg_ObjDialogs;<br/><br/> // Added in 11.0 - Set appropriate StatusEx static text.<br/> SetStatusExStaticText( SdLoadString( IDS_IFX_STATUSEX_STATICTEXT_FIRSTUI ) );<br/><br/> return 0;<br/>end; <br/>function OnMoved()<br/>string szCommand,szCmdLine,szPath,svResult,LicPath,tempdir;<br/>STRING svLine,svReturnLine,InsertTxt; //////操作文件的变量<br/>NUMBER nvFileHandle; //////////文件句柄<br/>NUMBER nvLineNumber ,nvResult; //////////操作文件的变量<br/>begin<br/>szPath=TARGETDIR^"temp";<br/>szCommand = WINSYSDIR^"msiexec.exe";<br/>LongPathToShortPath(szCommand);<br/>/////安装dotnetfx3.exe<br/>GetEnvVar("TEMP", tempdir);//得到临时目录<br/>FindAllFiles(tempdir, "dotnetfx.exe" , tempdir, CONTINUE );//在临时目录下搜索dotnetfx.exe文件<br/>if(LaunchAppAndWait(tempdir, "/q /norestart",WAIT)<0) then<br/>abort;<br/>endif;<br/>////////////////////////安装AE 运行时<br/>if (FindFile (szPath^"ArcEngine", "setup.msi", svResult) = 0) then<br/>szCmdLine =TARGETDIR^"temp"^"ArcEngine"^"setup.msi\" /qn";<br/>LongPathToShortPath(szCmdLine);<br/>Delay(1);<br/>if (LaunchAppAndWait(szCommand ,"/i \""+szCmdLine,WAIT) < 0) then<br/>abort;<br/>endif;<br/>endif;<br/>/////////////////////////AE 授权<br/>LicPath=" -Lif \"" +TARGETDIR^"temp"^"ArcEngine"^"Engine 9.3.ecp\" -s";<br/>if (FindFile (TARGETDIR^"temp"^"ArcEngine", "Engine 9.3.ecp", svResult) = 0) then<br/>if(SYSINFO.bIsWow64) then<br/>szCmdLine="C:\\Program Files\\Common Files (x86)\\ArcGIS\\bin\\SoftwareAuthorization.exe";<br/>else<br/>szCmdLine="C:\\Program Files\\Common Files\\ArcGIS\\bin\\SoftwareAuthorization.exe";<br/>endif;<br/>if (LaunchAppAndWait(szCmdLine ,LicPath,WAIT) < 0) then<br/>abort;<br/>endif;<br/>endif;<br/>if (ExistsDir(TARGETDIR^"temp")=0 ) then<br/>if (DeleteProgramFolder (TARGETDIR^"temp") < 0) then<br/>endif ;<br/>endif ;<br/>end;
|
|
2楼#
发布于:2011-12-06 11:27
<p>installshield_2010_打包实例教程下载</p>
<p><a href="attachment/2011-12/201112611265878646.rar">2011-12/201112611265878646.rar</a><br/></p> |
|
|