Visual Studio (VS2008) hibái

Eddig a Makefile-ok (és hasonló build rendszerek) boldog világában éltem. De most Visual Studio-t kell használnom.
Ezek a legbosszantóbb hibák amikkel szembesültem és nem sikerült megoldást találni:

A projekt (.vcproj) és solution (.sln) fájlok nem alkalmasak emberi fogyasztásra, emiatt verziókezelőkben (svn, cvs, git, stb.) nem olvasztható (magyarul: nem merge-ölhető) össze két fájl sem. Nem kommentelhető, nem scriptelhető. Ha egy fájlt egy program állít elő, rémálommá válik egy-egy változás átvitele más fájlokba és/vagy másik fejlesztési ágba (branch).

Include könyvtárak kezelése Debug, Release, Win32 és x64 módban. Az összeset lehet egyszerre változtatni vagy külön-külön egyesével.

Függőség kezelés nem automatikus, a felhasználónak kell beállítani minden sln-ben, hogy melyik projekt melyik másik projekttől függ. Mivel ez a függőség a sln-ben van tárolva, ezért újra és újra be kell állítania a felhasználónak, ha ugyanazt a projektet több sln-höz is hozzáadja. Minden egyes alkalommal be kell klikkelgetni, hogy az a projekt mitől függ. A beállított függőség nem rekurzív: a függőségek függőségeit is a felhasználónak kell beállítania.

Ha megváltozik egy külső függyvénykönyvtár (ami a linker-nek van közvetlenül megadva), nem fordítja újra a projektet. A felhasználónak kell újrafordítania.

Talán a legnagyobb gond, hogy nagyon lassan fordít a Visual Studio. Egy kis OpenGL-es Qt-s programom 40 másodperc alatt fordult le Windows 7 alatt, miközben az összes processzor dolgozott. Arch Linux alatt ugyanez 4,5 (igen, négy és fél) másodpercet vett igénybe. Ha egy szálon fordítottam akkor is 17 mp alatt lefordult. Majdnem tízszer lassabb a VS2008 Win7-el, mint Linux alatt a GCC.