views:

757

answers:

2

Our workstations are running 64-bit Vista, and the production servers for our ASP.NET MVC web apps are 64-bit Server 2008 servers. However, our build server running TeamCity is a Server 2008 32-bit server. We will taking these builds and deploying them on the 64-bit production servers. The applications are written all in C#. Should I be concerned about doing the builds in a 32-bit environment? Is it necessary to upgrade our build server?

A: 

In my experience, compiling an application with a 32-bit machine and deploying it to a 64-bit will cause the app to run slow. Might be different for web apps, though.

BBetances
+6  A: 

Technically, there should be no problem in doing so as the compiler will only generate IL code that is not platform dependent.

The .NET application will run on x64 CLR in the production environment. At runtime, the JIT compiler will produce x64 code.

Mehrdad Afshari
Thanks. I was thinking this was the case, but I wanted to be sure.
Lance Fisher
Even if you are generating platform-dependent code (from C or C++), one might reasonably expect the x64 cross compiler running on x86 to generate the same code as the x64 native compiler.
bk1e
Sure! The code base of the compiler is usually the same for all platforms it is compiled to run on.
Mehrdad Afshari
A bit late, but just to add: Even Visual Studio 2010 still uses 32-Bit msbuild. For example, the SharePoint 2010 Dev Tools won't actually work on 64-Bit msbuild (as .workflow.targets are only available for 32-Bit), despite SP2010 being mandatory 64-Bit.
Michael Stum