版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。
近期正在研究InstallShield中的自动化过程,今天先与大家分享一下InstallShield自带帮助中一节内容:
前提:
1. 使用Microsoft Visual SourceSafe进行应用程序源码管理,
2. 实现使用VBScript。
获取最新版本的InstallShield工程并编译安装包
1
Const
VSSFLAG_USERRONO
=
1
2 Const VSSFLAG_TIMEMOD = 8
3 Const VSSFLAG_REPREPLACE = 128
4 Const PROJECT_SCC_INI_LOC = " \\Server\srcsafe.ini "
5 Const PROJECT_SCC_FOLDER = " $/MyFiles/ "
6 Const PROJECT_SCC_BASE_NAME = " MyProject "
7 Const PROJECT_SCC_LOCAL_FOLDER = " C:\Project "
8 ' Create a ref to Microsoft Visual SourceSafe
9 Set VSS = CreateObject ( " SourceSafe " )
10 ' Point to the VSS database
11 VSS.open PROJECT_SCC_INI_LOC
12 ' Get the project file
13 Set VSSISVFile = VSS.VSSItem (PROJECT_SCC_FOLDER + PROJECT_SCC_BASE_NAME + " .ism " )
14 VSSISVFile.Get PROJECT_SCC_LOCAL_FOLDER + PROJECT_SCC_BASE_NAME + " .ism " , SSFLAG_TIMEMOD + VSSFLAG_USERRONO + VSSFLAG_REPREPLACE
15 ' Get all remaining files
16 Set VSSIDTFolder = VSS.VSSItem (PROJECT_SCC_FOLDER + PROJECT_SCC_BASE_NAME)
17 VSSIDTFolder.LocalSpec = PROJECT_SCC_LOCAL_FOLDER + PROJECT_SCC_BASE_NAME
18 For Each VSSObj In VSSIDTFolder.Items( False )
19 VSSObj.Get , VSSFLAG_TIMEMOD + VSSFLAG_USERRONO + VSSFLAG_REPREPLACE
20 Next
21 strFileBasePath = PROJECT_SCC_LOCAL_FOLDER + PROJECT_SCC_BASE_NAME + " .ism "
22 strCmdLine = " ISCmdBld.exe -p "" " + strFileBasePath + " .ism"" "
23 ' Build your installation
24 Set wshshell = CreateObject ( " Wscript.Shell " )
25 RunCmdLine = wshshell.Run(strCmdLine, 1 , True )
2 Const VSSFLAG_TIMEMOD = 8
3 Const VSSFLAG_REPREPLACE = 128
4 Const PROJECT_SCC_INI_LOC = " \\Server\srcsafe.ini "
5 Const PROJECT_SCC_FOLDER = " $/MyFiles/ "
6 Const PROJECT_SCC_BASE_NAME = " MyProject "
7 Const PROJECT_SCC_LOCAL_FOLDER = " C:\Project "
8 ' Create a ref to Microsoft Visual SourceSafe
9 Set VSS = CreateObject ( " SourceSafe " )
10 ' Point to the VSS database
11 VSS.open PROJECT_SCC_INI_LOC
12 ' Get the project file
13 Set VSSISVFile = VSS.VSSItem (PROJECT_SCC_FOLDER + PROJECT_SCC_BASE_NAME + " .ism " )
14 VSSISVFile.Get PROJECT_SCC_LOCAL_FOLDER + PROJECT_SCC_BASE_NAME + " .ism " , SSFLAG_TIMEMOD + VSSFLAG_USERRONO + VSSFLAG_REPREPLACE
15 ' Get all remaining files
16 Set VSSIDTFolder = VSS.VSSItem (PROJECT_SCC_FOLDER + PROJECT_SCC_BASE_NAME)
17 VSSIDTFolder.LocalSpec = PROJECT_SCC_LOCAL_FOLDER + PROJECT_SCC_BASE_NAME
18 For Each VSSObj In VSSIDTFolder.Items( False )
19 VSSObj.Get , VSSFLAG_TIMEMOD + VSSFLAG_USERRONO + VSSFLAG_REPREPLACE
20 Next
21 strFileBasePath = PROJECT_SCC_LOCAL_FOLDER + PROJECT_SCC_BASE_NAME + " .ism "
22 strCmdLine = " ISCmdBld.exe -p "" " + strFileBasePath + " .ism"" "
23 ' Build your installation
24 Set wshshell = CreateObject ( " Wscript.Shell " )
25 RunCmdLine = wshshell.Run(strCmdLine, 1 , True )
安装包工程代码Check Out,修改,Check In
1
Const
VSSFLAG_USERRONO
=
1
2 Const VSSITEM_FILE = 1
3 Const PROJECT_SCC_INI_LOC = " \\Server\srcsafe.ini "
4 Const PROJECT_SCC_FOLDER = " $/MyFiles/ "
5 Const PROJECT_SCC_BASE_NAME = " MyProject "
6 Const PROJECT_SCC_LOCAL_FOLDER = " C:\Project "
7 ' Create a ref to Microsoft Visual SourceSafe
8 Set VSS = CreateObject ( " SourceSafe " )
9 ' Point to the VSS database
10 VSS.open PROJECT_SCC_INI_LOC
11 ' Check out the project file
12 Set VSSISVFile = VSS.VSSItem (PROJECT_SCC_FOLDER + PROJECT_SCC_BASE_NAME + " .ism " )
13 VSSISVFile.CheckOut , PROJECT_SCC_LOCAL_FOLDER + PROJECT_SCC_BASE_NAME + " .ism " , VSSFLAG_USERRONO
14 ' Check out all remaining files
15 Set VSSIDTFolder = VSS.VSSItem (PROJECT_SCC_FOLDER + PROJECT_SCC_BASE_NAME)
16 VSSIDTFolder.LocalSpec = PROJECT_SCC_LOCAL_FOLDER + PROJECT_SCC_BASE_NAME
17 For Each VSSObj In VSSIDTFolder.Items( False )
18 If VSSObj.Type = VSSITEM_FILE Then
19 VSSObj.CheckOut , , VSSFLAG_USERRONO
20 End If
21 Next
22 ' Create a reference to the InstallShield Automation Interface
23 Set m_ISWiProject = CreateObject ( " IswiAuto16.ISWiProject " )
24 strFileBasePath = PROJECT_SCC_LOCAL_FOLDER + PROJECT_SCC_BASE_NAME + " .ism "
25 ' Open your project
26 m_ISWiProject.OpenProject strFileBasePath
27 ' Add a feature
28 m_ISWiProject.AddFeature " Robofeature1 "
29 ' Save the project
30 m_ISWiProject.SaveProject
31 ' Close the project
32 m_ISWiProject.CloseProject
33 ' Check in the project file
34 Set VSSISVFile = VSS.VSSItem (PROJECT_SCC_FOLDER + PROJECT_SCC_BASE_NAME + " .ism " )
35 VSSISVFile.CheckIn
36 ' Check in all remaining files
37 Set VSSIDTFolder = VSS.VSSItem (PROJECT_SCC_FOLDER + PROJECT_SCC_BASE_NAME)
38 For Each VSSObj In VSSIDTFolder.Items( False )
39 If VSSObj.Type = VSSITEM_FILE Then
40 VSSObj.CheckIn " Check In Comment "
41 End If
42 Next
2 Const VSSITEM_FILE = 1
3 Const PROJECT_SCC_INI_LOC = " \\Server\srcsafe.ini "
4 Const PROJECT_SCC_FOLDER = " $/MyFiles/ "
5 Const PROJECT_SCC_BASE_NAME = " MyProject "
6 Const PROJECT_SCC_LOCAL_FOLDER = " C:\Project "
7 ' Create a ref to Microsoft Visual SourceSafe
8 Set VSS = CreateObject ( " SourceSafe " )
9 ' Point to the VSS database
10 VSS.open PROJECT_SCC_INI_LOC
11 ' Check out the project file
12 Set VSSISVFile = VSS.VSSItem (PROJECT_SCC_FOLDER + PROJECT_SCC_BASE_NAME + " .ism " )
13 VSSISVFile.CheckOut , PROJECT_SCC_LOCAL_FOLDER + PROJECT_SCC_BASE_NAME + " .ism " , VSSFLAG_USERRONO
14 ' Check out all remaining files
15 Set VSSIDTFolder = VSS.VSSItem (PROJECT_SCC_FOLDER + PROJECT_SCC_BASE_NAME)
16 VSSIDTFolder.LocalSpec = PROJECT_SCC_LOCAL_FOLDER + PROJECT_SCC_BASE_NAME
17 For Each VSSObj In VSSIDTFolder.Items( False )
18 If VSSObj.Type = VSSITEM_FILE Then
19 VSSObj.CheckOut , , VSSFLAG_USERRONO
20 End If
21 Next
22 ' Create a reference to the InstallShield Automation Interface
23 Set m_ISWiProject = CreateObject ( " IswiAuto16.ISWiProject " )
24 strFileBasePath = PROJECT_SCC_LOCAL_FOLDER + PROJECT_SCC_BASE_NAME + " .ism "
25 ' Open your project
26 m_ISWiProject.OpenProject strFileBasePath
27 ' Add a feature
28 m_ISWiProject.AddFeature " Robofeature1 "
29 ' Save the project
30 m_ISWiProject.SaveProject
31 ' Close the project
32 m_ISWiProject.CloseProject
33 ' Check in the project file
34 Set VSSISVFile = VSS.VSSItem (PROJECT_SCC_FOLDER + PROJECT_SCC_BASE_NAME + " .ism " )
35 VSSISVFile.CheckIn
36 ' Check in all remaining files
37 Set VSSIDTFolder = VSS.VSSItem (PROJECT_SCC_FOLDER + PROJECT_SCC_BASE_NAME)
38 For Each VSSObj In VSSIDTFolder.Items( False )
39 If VSSObj.Type = VSSITEM_FILE Then
40 VSSObj.CheckIn " Check In Comment "
41 End If
42 Next