Thread: [GD-Windows] Running VS2005 cl.exe without installing
Brought to you by:
vexxed72
From: Alen L. <ale...@cr...> - 2007-07-16 13:14:46
|
Hi, When installing build machines, we prefer not to actually install the IDEs there, but we instead put the required compiler binaries, libs and includes in the source control, and then just sync and build in one simple step. We were happily using this with VS2003, but with VS2005 (SP1 at least), this doesn't seem to work, due to some of that new fancy "manifest hell". When starting cl.exe from a such copied directory, I get plainly "The system cannot execute the specified program." Dependency walker says this: "Error: The Side-by-Side configuration information in "d:\work\main\tools.win32\vc8.0\bin\CL.EXE" contains errors. This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem (14001)." I made sure I have all the needed dlls (c1, c2, cxx, msobj...) and the 3 mscrt80 dlls with their matching .manifest file, in the same dir with cl.exe. Has anyone succeeded in doing this? Any clue what might be a problem here? Thanks, Alen |
From: Alen L. <ale...@cr...> - 2007-07-16 14:13:39
|
Hi Aaron, Thanks for the tips! Installing anything (other than the OS and the Perforce client) is what I'm trying to avoid, in order to simplify the process of adding new build machines. :) So far I seem to have tracked this to the fact that cl.exe from VS2005SP1 actually requires an older version of the msvcrt80.dll and its manifest and it refuses to work with the ones distributed with VS2005 SP1. Weirdly enough I don't find these installed in System, WinSxS or VS2005 folders on my developer machine, but I have them in the X360 and VS2003 folders. Strange as hell, but it might work. Alen Aaron wrote: > I think msvcr80.dll is the important one. > You can check it in with the exe, or I think you can just install the > .NET Framework on the build machines instead (1.0, 1.1 or 2.0? I forget > exactly, but I think it's 2.0). > There's a lot of "think"s in the above, but it was a long time ago that > I got this working > Aaron. > |
From: Alen L. <ale...@cr...> - 2007-07-16 15:04:27
|
Aaron wrote: > Out of interest is the OS XP or Vista? XP. Is there a difference of interest in this case? (Perhaps I could use the SxS tracker or whatsitsname on Vista?) Alen |
From: Dan T. <da...@ar...> - 2007-07-16 20:20:22
|
All the new Dlls have to be registered with the sxs stuff nowadays... since it appears to just be looking for the vc8 runtime, you can run the redist, maybe that'll get you what you need? Sorry if this has alreayd been covered... it looks like I'm only getting part of this thread (only Alen's messages). Alen Ladavac wrote: > Aaron wrote: > >> Out of interest is the OS XP or Vista? >> > > XP. Is there a difference of interest in this case? (Perhaps I could > use the SxS tracker or whatsitsname on Vista?) > > Alen > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Gamedevlists-windows mailing list > Gam...@li... > https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_id=555 > > > |
From: Alen L. <ale...@cr...> - 2007-07-17 06:57:39
|
Alen wrote: > So far I seem to have tracked this to the fact that cl.exe from > VS2005SP1 actually requires an older version of the msvcrt80.dll and > its manifest and it refuses to work with the ones distributed with > VS2005 SP1. Weirdly enough I don't find these installed in System, > WinSxS or VS2005 folders on my developer machine, but I have them in > the X360 and VS2003 folders. Strange as hell, but it might work. Just for the (google) record, seems that this has solved the problem. Examining the cl.exe from VS2005 SP1 with resource editor shows that its manifest requires msvcrt80 version 8.0.50608.0. A simple search for *VC80*.manifest files containing the string "8.0.50608.0", on the entire disk of a machine which works, has found a matching version of the manifest along with its dlls. Just copying those dlls and the manifest to the directory where cl.exe resides, makes it work. This makes sense, according to http://msdn2.microsoft.com/EN-US/library/aa375190.aspx, as it makes cl.exe a "(partially) isolated application". What is amazing is that (according to Dependency Walker) cl.exe on my machine happily uses version 8.0.50727.762. I guess it has something to do with it being registered, probably allowing it to jump in for the older version. Cheers, Alen |