Vinoth,
The TestedApps["AppName"]["Run"] method does not pause the script execution until the application it launches is over. TestComplete supposes that after you launch the tested application, it should run other test commands to simulate user actions in this application. So, you have to insert some test commands that will pause the test run until the first application (MSBuild) finishes.
The Delay method may be used for this. A better approach is to insert some code that will "wait" for the MSBuild application to be completed. Perhaps, you can wait until the process launched by the MSBuild application is over. I don't have MSBuild on my computer and cannot check this myself, but, most likely, the process name is msbuild. In this case, try using the following code:
var process, flag;
// Launch the first app
TestedApps["MSBuild_40"]["Run"]();
// Give the app some time to start and get the app's process
process = Sys["WaitProcess"]("notepad", 5000);
// Wait until the process is over
// The maximum waiting time is 3 minutes = 1000 ms * 60 sec * 3 min
flag = process["WaitProperty"]("Exists", false, 1000 * 60 * 3);
// Check whether the first app is over
if (!flag)
// The app has not been finished yet
Log["Error"]("The first application is not over.")
else
// Launch the second app
TestedApps["TA_4420"]["Run"]();
...