1. -Change file list from set to vector, because the order of files is important.
1. -Add new interface for componentprojectdirectory.
1. -Use startprojectdirectory pointer instead of logic pos.
1. -Fix some bug.