If you're like me, you're lazy. And last night, while on my couch watching the Olympics, I attempted to do a simple thing - compile a solution containing a setup project (.vdproj) from NAnt. After all, when you're distributing a Windows Forms application to a non-technical audience, it's natural to want an installer to bootstrap to the .NET framework, copy the application to the program files directory, and create an icon on the desktop and start menu. To enhance efficiency through automation, it's also natural to want to build the software on a build server instead of manually on a developer workstation. Let's just say it took longer than a few heats of the 100m butterfly to complete this simple task. Hopefully I can decrease that learning curve for you, my fellow developer.
My first thought was, "I'll use msbuild to compile the solution". It's completely logical, but unfortunately impossible. vdproj files can only be compiled by Visual Studio. After about an hour of scouring the Internet in denial and throwing up in my bathroom, I accepted this *enormous* limitation. Apparently this issue has been known by Microsoft since at least 2004, but they haven't had time to address it. Most likely this time was instead spent pursuing the Microsoft dream. By the way, in the Microsoft dream a non-technical website administrator drags their entire SQL Server database onto the ASP.NET "design surface" and selects the publish option from the build menu.
The next problem that arises is: how do I call Visual Studio from NAnt? What executable and command-line arguments do I use? How do I dynamically determine where Visual Studio is installed? Below is some NAnt code that answers these questions:
<readregistry
property="ide.dir"
key="SOFTWARE\Microsoft\VisualStudio\9.0\InstallDir"
hive="LocalMachine" />
<echo message="IDE Directory is ${ide.dir}" />
<exec
program="devenv.exe"
workingdir="."
basedir="${ide.dir}"
commandline="src\XYZ.sln /Clean"/>
<exec
program="devenv.exe"
workingdir="."
basedir="${ide.dir}"
commandline="src\XYZ.sln /Rebuild Release"/>
17 comments:
Cor blimey! We use wix for this sort of stuff...
neil, got any links to help for bootstrapping .net with wix?
Look at Wix Tutorial.
Regards, Petar
Love the description of the "Microsoft dream!" Hilarious!
By the way, in the Microsoft dream a non-technical website administrator drags their entire SQL Server database onto the ASP.NET "design surface" and selects the publish option from the build menu.
And this will work… as long as said non-technical website administrator only wants to use the provided controls in exactly the way they are provided. Any deviation will require a new object developed from scratch.
Regards CJ
the only thing that would make this blog more useful is if was added to more often than once every few months
You post saved my day, thanks! :)
In my experience, devenv alway returns a code of 1 which causes nant to fail. Have you experienced this? I have set my <exec failonerror='false'> to get past this. Any suggestions?
I think it is great you were capable of run this applications. It is clear that you are lazy, and so am I so I want to do exactly the same.
Also I am pretty lazy too and I hope that your tutorial can make my life way too easy.
In my opinion one and all should browse on this.
For 64bit systems, the registry key is at HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\9.0\InstallDir
See http://stackoverflow.com/questions/1539274/cant-find-vs2008-installdir-registry-in-windows-7-x64
buy xanax 1mg high from xanax - xanax bars difference between white yellow
xanax without prescription xanax 4h2 - xanax side effects tremors
I know this if off topic but I'm looking into starting my own blog and was wondering what all is needed to get set up? I'm assuming having a blog like yours
would cost a pretty penny? I'm not very web smart so I'm not 100% positive. Any suggestions or advice would be greatly appreciated. Kudos
Feel free to surf to my blog cash quick
Very soon this web page will be famous among all blog people,
due to it's good articles or reviews
Also visit my homepage - breast augmentation how long do they last
My web site: natural breast enlarge
It is truly a great and useful piece of information. I am satisfied that you just shared this helpful info with us. Thanks a lot for posting individual information and made me more knowledgeable person.I simply want to say that absolutely very good post. Please keep update like this excellent post.
Engineering Colleges in Chennai, ECE Engineering Colleges in Chennai
Post a Comment