ClickOnce is a Microsoft technology that enables the user to install and run a Windowsbased smart client application by clicking a link in a web page. But nonetheless, it was a fun little handheld to code for. I was certainly looking forward to coding on a much more popular device. Total Eclipse of the IDENow if youve ever tried to write anything for the Android, youll know the preferred development environment is Eclipse. If youre writing your stuff completely in Java, you have everything youd ever need in Eclipse. It seems to do all the nice syntax highlighting, and intellisense like functionality that Visual Studio offers. Of course the shortcut keys are completely wrong, and must have been setup by a madman, but it does seem a pretty good IDE to develop in. Better yet, its freeBut is it for me Nah. Its not for me. I just couldnt get on with it. Primarily I want to write my code in CC too. So I started to convince myself that I neednt bother with Eclipse. Totally Rad 2 Rapidshare Download. I can get all the highlighting and quick reference stuff in Visual Studio, and I could run batch files to build my code. After all, with C under Eclipse you still have to install Cygwin and effectively build from the command line. Visual Studio. Ive used Visual Studio for a very long time now, since its older guise as simply Visual C. Was version 4. 0 I think that I started with, when I moved from DOS to Windows programming. Now its my primary coding IDE Ive used it at both games companies Ive worked at in the past decade. Its an odd one to admit, but its too hard to let the thing go. Makefile Project. So I set off and started a Makefile Project in Visual Studio. I could update the system include paths under Visual Studio 2. I think was trickier with earlier versions, or at least not set on a per project basis, I forget. This meant Id get properly working intellisense of the Android NDK headers, the External Dependencies list in my solution was all completely correct too. All in all, a pretty nice setup. I put together a batch file, which invoked a cygwin session running ndk build. I then setup some further ones which would build the entire package using ant, and then install and run the application on the Android device connected to my PC. Not much to argue with here. For someone who was longing for Visual Studio back, after a few days with Eclipse. It was lovely. If you want to try the makefile method, take a look at this website His method is a little cleaner than the one I used, my batchscript files were hard coded messes of experimentation. Check out the debugging article on his page too, hes got a way of using Win. GDB to debug Android NDK code in Visual Studio. Its awesome. What about when it gets big Unfortunately Androids NDK build scripts under Cygwin on Windows, isnt exactly the performer. When your file count gets into triple figures the initial dependency checks take an age. I also wasnt too enamored with not knowing what was passed to my compiler. You get a limited set of proprietary settings you can change in your makefile, but it did feel like a black box. Coming from a console background, I like to know what my debug and release builds actually are. I also like to setup further build variants too Usually one specific to profiling the game, essentially release with some limited modules enabled to do the profiling. The other major one would be a variant of my debug build, with asserts on but the optimization cranked up to max. So it did feel a little confining. My realization about the build slowdowns with lots of files came when I attempted to integrate third party code Specifically what Im wanting to use is the Irrlicht engine. Its a well structured open source rendering engine. Very versatile, and runs on a variety of platforms. Android included, of course. Runing ndk build, the thing would sit there for well over a minute before even starting to compile files. Ive a recent i. 7 based laptop too, so its no slouch. I had an itching to try and delve into a more integrated method of building with Visual Studio, and that tipped the balance for me. Enter MSBuild. With Visual Studio 2. Microsoft made a radical change to the way their C environment worked. They moved over the entire thing to use MSBuild. Having worked with a certain non Microsoft gaming console, you could see that they had to do a little hoop jumping in previous versions of Visual Studio. Integrating custom compilers with the older versions really appeared to be quite a task. With VS2. 01. 0, it had been hinted on some preview posts from Microsoft that this would be far easier. Unfortunately though when I started to look into this, I found next to no information on the web about it. Well, really I found absolutely nothing in the end. I found a couple of questions on stackoverflow. I ended up searching through the Visual Studio directories to find the existing scripts for Microsofts compiler. From there I duplicated the directory layout and began tinkering with setting up a new platform. Id never used MSBuild before this. It was completely new to me, never even seen a MSBuild file before. I hear some game companies use it, but ours certainly doesnt. I can definitely recommend it though, its very powerful and flexible. It does have quite a learning curve, and Google searching for documentation can lead you to very bad explanations of how it works. If youre at all interested in it, I recommend this book As well as being a very good guide to MSBuild, it actually had a small chapter about exactly what I was trying to do Something I couldnt find at all with Google. Unfortunately I picked the book up after Id done the majority of my scripting, but it at least showed me I was barking up the right tree. So, vs android. Once Id gotten all the features I wanted, and all the bugs I could find ironed out, I decided to release it as open source. The regular download package just consists of a collection of MSBuild scripts, which need to be copied within a certain sub directory of your Visual Studio installation. Alongside the scripts is a single DLL file. When youre working with MSBuild, you can code up custom tasks in a. NET language, such as C. The header dependency scanning code lives here, which invokes gcc to find all the headers that the ccpp files would be dependent on. As well as some other command line switch manipulation code. The full source to the C DLL is up on my Google code page. You can download vs android here Theres full documentation on those pages too. Along with a step by step example of getting Androids san angeles sample app compiling and linking. The Google Code page also contains more technical info about the implementation, if youre interested. Theres a link on the main page to tech notes, which expands on some of the points Ive touched on here. One thing Id like to mention is that you dont need Cygwin at all any more, if you use vs android. That in itself is a godsend Its been a few years since I last used it. It was compulsory for our build process a few years ago, when I was working in the United Kingdom.