Example of Creating an Internal Consistency Evaluator (ICE) using Orca
Whilst the ICE list is pretty comprehensive there will be a point where you need to validate information that is not covered by the standard ICE unit tests, to do this you will need to add your own Internal Consistency Evaluator.
Here is an example of creating a vbscript Internal Consistency Evaluator wdICE01 to check that no hard coded paths (c :) have been entered into the Registry table, wdICE01.vbs will be used to populate necessary tables in darice.cub
1. Append the .ibd file extension to your vbscript example: wdICE01.vbs.ibd
2. Using Orca, Open C:Program Filesorcadarice.cub
3. Select Binary table and add new row (CTRL & R).
Binary Table add new row
Enter Name of VBScript in name field.
Enter the path to the location of ibd file into the Data field (or Browse…) and click OK to add new row.
4. Select CustomAction table and add new row
Custom Action table add new row
Enter ICE name into Action field
Enter Type into Type field (see table below)
Enter VBScript into Source field
Enter ICE name into Target field and click OK to add new row.
5. Select _ICESequence table and add new row
_ICESequence table add new row
Enter ICE into Action field
Leave Condition empty
Enter sequence number into Sequence field and click OK to add new row.
Its a good idea to use a sequence number is greater than 1000 as not to interfere with built-in ICE sequences.
Save darice.cub (CTRL & L)
6. Open MSI package and Validation Output (CTRL & L)
Validation Output Window
Click Go (ALT & G)
Clash Of Clans HackRobuxed Roblox HackNo Human Verification Roblox HackCocgemsgiveaways Com HackSuper Mario Run HackIskid Org Robux HackRobloxgiveaway Xyz Cheat Hack8ballpool ppf info Hack8ballpoolhack Us Hackvaingiveaways Top Vainglory HackIskid Org Robux Hack“My Cafe Recipes Stories HackPanda Pop HackMobile Legends HackKritika HackClash Royale HackFree Streaming Movie Online 2017
When validation has completed results are displayed, Click Close
The Table Error symbol |appears to the left hand-side of Tables containing ICE messages
Orca ICE Validation Window
The validation pane lists Warning and Errors found when the validation has been run and can be used to quickly change the table list window and table view focus highlighting the location of a specific validation error.
Example
Here is an example vbscript if you want to try it out
Function wdICE02() On Error Resume Next Set recInfo=Installer.CreateRecord(1) If Err <> 0 Then wdICE02 = 1 Exit Function End If 'Give description of test recInfo.StringData(0)="wdICE02" & vbTab & "3" & vbTab & "wdICE02 - Performs a non case sensitive search for C: hard coded into the IniFile table " Message &h03000000, recInfo 'Give creation data recInfo.StringData(0)="wdICE02" & vbTab & "3" & vbTab & "Created 23/03/07. Last Modified 23/03/07." Message &h03000000, recInfo 'Is there a IniFile table in the database? iStat = Database.TablePersistent("IniFile") If 1 <> iStat Then recInfo.StringData(0)="wdICE02" & vbTab & "3" & vbTab & "'IniFile' table missing, wdICE02 cannot continue its validation." Message &h03000000, recInfo wdICE02 = 1 Exit Function End If 'process table ' [1] [2] [3] [4] Set View = Database.OpenView("SELECT `IniFile`,`FileName`,`Key`,`Value` FROM `IniFile`") view.Execute If Err <> 0 Then recInfo.StringData(0)="wdICE02" & vbTab & "0" & vbTab & "view.Execute_1 API Error" Message &h03000000, recInfo wdICE02=1 Exit Function End If Do Set rec=view.Fetch If rec Is Nothing Then Exit Do 'check for hardcoded string. If InStr(1,rec.StringData(4),"c:",1) > 0 Then 'Name of ICE Message Type Description Help URL or location Table Name Column Name Primary Key Primary Key Primary Key '(repeat for as many primary keys as needed) http://msdn2.microsoft.com/en-us/library/aa369205.aspx rec.StringData(0)="wdICE02" & vbTab & "2" & vbTab & "Path [4] is hard coded in [3] key within [2]" & vbTab & "" & vbTab & "IniFile" & vbTab & "IniFile" & vbTab & "[1]" Message &h03000000,rec End If Loop 'Return iesSuccess wdICE02 = 1 Exit Function End Function
0 Comments