A Visual Studio solution does not build optimally because the projects contain project references that cannot be converted into file references automatically. This causes unnecessary serialization or rebuilding of dependent projects. This can occur because the project contains duplicate file and/or project references. The removal of duplicates by the Extensibility API causes the add-in’s inability to detect those duplicates, hence it is unable to convert the project references correctly.
Try building with MSBuild v3.5+ (if available). Those versions allows eMake to prevent MSBuild from building dependent projects.
Additionally, use the utility
ecfixvsproject.exe to remove duplicate project/file references. For example:
ecfixvsproject <`filelist> -f`
<`filelist>` - list of files and/or directories separated by spaces. If you do not specify a project list, all projects in the current hierarchy are processed.
-f - fix projects. If you do not specify '
-f', the changes are shown to stdout only and no file changes are made.