Tuesday, December 11, 2007

.NET 3.5, NAnt and CruiseControl.NET

My build server at work is a VM that does not have VS 2005/8 installed on it. I like to keep it that way because it keeps the large install footprint from being replicated to the build machine. All of the installs that we do at my company can be build from NAnt command line or we can build inside of VS.

.NET 3.5 and VS 2008 specifically, changed how the tools required to build using NAnt are deployed. Here are the steps I went through in order to get our solutions that were .NET 2.0/VS2005 buildable using NAnt 0.85 w/ NAntContrib running under .NET 3.5:


  1. Download the .NET 3.5 Runtime available here
  2. Download the NAnt 0.86 Beta 1 here
  3. Download the NAntContrib 0.85 Nightly here
  4. If you now attempt to run a nant build file you might find you get an error like



  5. There are several key components that are no longed installed into the RuntimeDirectory (aka C:\Windows\Microsoft.NET\Framework\v3.5. Things like the gacutil, sn.exe, xsd.exe, svcutil.exe etc… are missing.) These can now be found at C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin, but only if you install some extra things from the VS 2008 install CD.

  6. On my CD obtained during the padnug VS2008 Install Party (or alternatively in the ISO you can download from MS). Open the \WCU\WinSDK folder and grab the WinSDK_*.exe files. Copy these up to your build server, and then extract the bits using WinZip (or your favorite ZIP archive program). I noted that you could not run the EXEs directly, note there might be a better way to do this via the VS 2008 Installer CD, but I was following some instructions and a hunch based on Blog de Jérémie Clabaut. (Incidently, I google’d ‘visual studio 2008 SDK gacutil’ to find this)

  7. Once you’ve run the .msi’s that you extracted, you should find gacutil and friends in their new location at C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin. I believe that you only need to install the WinSDK_W32Tools.exe and WinSDK_NetFxTools.exe, but I installed all five of them.

Currently, my projects are still using .NET 2.0 and not .NET 3.5. Most likely there will be some gotchas as most of our stack uses components like NHibernate 1.2, log4.net, etc… that I’ve not yet tested to make sure they work with .NET 3.5. VS 2008 seems to run a lot faster! I’ve not installed any of my old favorite AddIns yet though like, Copy As HTML or Resharper.


One other notable thing: the Cassini Web Server that runs your HTTP applications without deploying to IIS has also changed locations and is located at: C:\Program Files\Common Files\Microsoft Shared\DevServer\9.0\WebDev.WebServer.EXE.

Thursday, September 6, 2007

VMware Workstation, Dell D620 Laptop, and Intel SpeedStep... oh boy!

It turns out that SpeedStep on a laptop is a really bad thing when you are trying to use a VM. The symptoms are that the clock in the VM runs about twice as fast. Note that my laptop report a minimum processor speed of ~1GHz and max at 2GHz. So I noticed that the real clock was record seconds go by between 1.5 - 2x faster than normal! This might explain why a coworked and I could not get our VMs to function correctly on a demo visit to a partner's office. To fix it I rebooted, turned off SpeedStep in the BIOS.

When I don't have a VM on my laptop, i.e. after vacation, I will restore the SpeedStep.

Wednesday, August 2, 2006

Thomas Friedman on Syria, the US and War

If you’ve not heard of Thomas Friedman you should know who he is. He’s a journalist that has published a number of must reads: The World is Flat and Longitudes and Attitudes as well as a really interesting television story on global warming and electric cars: Addicted to Oil (its on again on August 14th)

But anyways… check out the Fresh Air interview from August 1 with Terry Gross. Most notable and disturbing was this quote from Thomas Friedman, “(Hezbollah) hates Israel more than they love their own kids… that is such a travesty.”

There’s more interesting things he has to say about the tragedy of the Accidental War as the Economist calls it.

Friday, April 28, 2006

Quote from Captain James Cook

"I can be bold to say, that no man will ever venture farther than I have done and that the lands which may lie to the South will never be explored."


Captain James Cook, 27 January 1775

I put this quote here as food for thought. At the time Cook wrote this he had good enough reason to make such a strong statement. For well over 2000 years, or perhaps even all of recorded human history to that time, boots were only made of wood. Note, that at this time, there were no steam powered vessels, nor were there the steel and iron ships which would come to be about 100 years later.

When we try to solve problems in our lives we often put too little thought into questioning the base assumptions that we make decisions on.

This also leads into that often quoted addage about those who do not know the past are doomed to repeat it.

Tuesday, January 31, 2006

NANT files and XML namespaces

NANT files and XML namespaces

Being a reader (worshiper?) of Scott's blog I happened upon
Intellisense and NAnt .build files in VS.NET back a while ago. Recently I also starting using nant include tasks to centralize common functions/scripts/targets in a single location. When you combine the two, beware: all included files in which you reference targets need to also include the same namespace for instance:

xmlns="http://nant.sf.net/schemas/nant-0.84.win32.net-1.0.xsd"

The only error you see is:

BUILD FAILED

Target 'foobar' does not exist in this project. It is used from target 'wombat'.


Enjoy!

Tuesday, December 20, 2005

DNS Caching and Windows XP

I recently returned from yet another trip to China (this time with my wife :) and plugged the laptop back into the work network. When I have the laptop in the office I usually use Remote Desktops to connect to it. When I do this I also try to use the wired connection vs. the 802.11b as it is more responsive. What I noticed was that even though the new IP address for the NIC was registered with the DNS server, it was using the old IP Address on my desktop. The effect was that the machine was unreachable.

Using our trusted friend google I found this article to explain how to adjust the DNSClient on the local workstation.

Friday, December 2, 2005

I saw this up on MSDN. Its worth trolling the MSDN Mag site periodically to see what articles are there. I used to, and still do, troll the brick and mortar Barnes and Noble nearby to see the magazines. I no longer see the MSDN Magazine there anymore, so I've switched to reading it on the web from time to time.

Ten Essential Tools: Visual Studio Add-Ins Every Developer Should Download Now -- MSDN Magazine, December 2005

I used the CodeSourceToHtml AddIn to produce the code below. I've been looking for a Source to HTML tool since I started blogging!


public delegate void ProgressEventHandler(object sender, ProgressEventArgs args);
 
public class ProgressEventArgs : EventArgs
{
    private string _probeName;
 
    public ProgressEventArgs(string probeName)
    {
        _probeName = probeName;
    }
 
    public string ProbeName
    {
        get
        {
            return _probeName;
        }
    }
}

Enjoy!