Wednesday, September 19, 2012

Customized setup and deploy Package’s with the Orca Database Editor

As DBA, I find comfort in the fact that almost everything in life is based on a relation model, so I decided to blog about using the Orca Database editor to design customized GUI’s for setup and deploy packages in Microsoft Visual Studio. Beware trying out this, could break the standard templates given by Microsoft and could make unwanted install’s , if you created unwanted installs try Microsoft FixIt  (find it on google).

If you follow this Blog Clearly this shouldn’t occur,

Firstly Where to find the files we need to customize for our project?
In Visual Studio: 2010 - C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\Deployment\VsdDialogs\1033


 Drive installed \Version of Microsoft \ THEN

In the VsdDialogs you will notice a lot of folders e.g 1028 or 1031, this got to do with the language you installed visual studio with, 1033 is for English.

How to start your Customization?

Firstly make a copy of the file named “VsdCustomText1Dlg.wid” , then use your copy to edit so if you make any mistakes you can delete it without harm.

Open your Copy with Orca (File->open->Files of type (All Files)):

Step 1:  Edit  Table, ModuleDialog change the Attributes of the columns e.g

Toolbar->View -> Edit Summary Information

Links with in Visual Studio, “Setup project -> Right click on the setup project -> View User Interface -> then right  click on start and add Dialog”

Step 2:  Edit  Table ModuleConfiguration, and change the following columns

Notes: Some values are hardcoded so it could be displayed on Visual Studio, e.g #1101 points to strings in Visual studio. Some are blank so that it isn’t Changeable by the user.

Links to: Properties in User Interface -> Custom Dialog

Step 3:  Edit  Table Property, change the following,

Step 4: Edit Table TextStyle,

Step 5:Add a table named RadioButton, Right Click on tables side -> add table ->Scroll then select RadioButton, Add contents,
This graph determines the layout of your radio button’s, so this table links up with control table.

Step 6: Edit  Table ModuleSubstitution,

Step 7: Edit Table ModuleSignature,

Highlight the previous one, press A4 then convert,
e.g {7F1751A2-11C4-448C-AEC9-D99E0959E66A}
 to 7F1751A2_11C4_448C_AEC9_D99E0959E66A

Then edit Package code mention in step 1: Toolbar->View -> Edit Summary Information
N.B must be the same. And it must be a new GUID.
Step 8:  Edit  Table’s ModuleInstallUIInstall  and ModuleInstallExecuteSequence

Step 9: Edit  table Dialog,

Step 10:Edit Table CustomAction,

Step 11: Edit Table ControlEvent,

Step 12:Edit Table ControlCondition,

Notes: This table relates to the ModuleSubstitution table the Condition value of the radio button relates to the property of the ModuleSubstitution.
Step 13:Edit Control, 
Notes: This table controls the total of the application layout

Step 14: The Rest of the tables is not important.

What have we created ?


After: By clicking on Button2 radio button we enable Edit2 Textbox.

NOTES : The rest of the dev is done in C# so im not going to explain a lot there, just add project output -> add custom actions -> 

No Spaces between CustomActionData, /LOC is a Variable name, also if the value of [EDITA1] has spaces then it must be like this /PATH=”[EDITA2]”, [EDITA1] corresponds to the UI Edit1Property Value.

Example in your app:

C#: String MonitorLoc =this.Context.Parameters["PATH"];

You can take the graphical user interface of Setup and Deploy Packages to the extreme with customized splash screens, ReadMe’s, Drop Down Combo Boxes. Instead of trying to make a custom form to match your setup try Converting the Templates..



  1. Very nice post! Worked with Orca before and its quite flexible for customizations. Personally I have the need to use the stock standard Setup project template and customize it using plain old win forms. Hopefully there's a better version of Orca out soon that makes it even more easier for customizations.

  2. I've been looking for this for how many hours! Thanks!