Tips
Visual Studio 2008 throws error while closing or debugging
If you get unexpected errors in Visual Studio 2008 while closing it or switching the window layout (this happens, for example, when you start debugging), then you’ve probably encountered “VS 2008 Layout bug”.
Clicking “Menu - Window - Reset Window Layout” could help.
IPv6 and Virtual Networks
Tip: if you have some problems with virtual networks that have Windows Server 2008 machines as server or client, try disabling the IPv6 support in the properties of networks adapters. This helped me twice already.
Commit Monitor for Subversion
Last night I’ve got really nice tool into my autorun - Commit Monitor.
It is small, simple and completely replaces SVN notification emails.

.NET tool “exited with code 9009″
.NET can get so cryptic sometimes…
The command “Some_Simple_Shell_Command_Here” exited with code 9009.”
If you get message like this (could be followed by the MSBuild error code of “MSB3073″), then try to:
- Check that the working directory for this executable command is correct
- Ensure that Windows PATH environment variable does not have any problems (I used to get these after adding new directories to the PATH)
- Make sure that the Command prompt (Cmd. exe) command-line string limitation is not hit.
- Restart your command prompt or any other long-running process (like CC.NET server) since they can cache environment variables.
How to run MSBuild targets multiple times
Microsoft MSBuild caches target calls internally. Thus, it is not possible to build same project(s) twice (i.e. when you are propagating changes between logical subsolutions).
One of the workarounds is about batching .NET builds. Another one is simply about calling MSBuild projects multiple times while adding dummy values to the properties:
<MSBuild Projects="@(SomeSolution)" Targets="Rebuild;Copy" Properties="SomeProperty=SomeValue;DummyProperty=1;" />
BTW, MSBuild has a nice switch called “/maxcpucount:n” (or “/m” for short), that specifies the maximum number of concurrent processes to build with.
Miscellaneous things
- Following the steps of the Simple State Machine, Nick has posted a project Irony that is about implementing the complex lifestyle for the domain objects (workflow engine) in pure C#. If you do not really need large-scale flexibility of a Boo-based approach (that comes with the increased complexity), then this project is really worth checking out for the ideas.
- Do you remember my post on the Generator pattern? If you only need a numeric inline generator, then System.Linq already provides one. Look out for the Enumerable.Range (by aCoder).
- TortoiseSVN 1.5.1 is out, but it just does not work on the Windows Server 2008-x64 for some reason (GUI handler fix for Vista be the reason for that).
CC.NET and the mystery of failing web deployment projects
If something has gone wrong, and it is really tough to figure out the reason, try looking at the situation from the different angle. Could it be, that there are two separate and simple problems that play well together in distorting the symptoms?
This has been the case with the Web Deployment Projects failing spontaneously on the CC.NET. Deployment projects do really fail under VS 2008 under some weird circumstances (that’s the first problem), but the real cause was simple build timeout on the integration server (second problem).
And I’ve got way too carried away by the complexity of the first problem (and ease of reproducing it locally) and didn’t even check server log (CC.NET separates build logs from the server log, which holds higher-level messages) for some other hints (i.e.: “Process timed out:…”)
That was a good lesson.
Search
Archives
Recent Comments
- aCoder on Extension methods for interfaces
- Requirements for the Photon .NET project | Rinat Abdullin on IRepository, cross-cutting concerns and flexibility
- Nicholas Blumhardt on Extension methods for interfaces
- aCoder on IRepository, cross-cutting concerns and flexibility
- Rinat Abdullin on Blog upgraded
- Rinat Abdullin on Extension methods for interfaces
- IRepository, cross-cutting concerns and flexibility | Rinat Abdullin on Extension methods for interfaces
- Bill Pierce on Blog upgraded
- aCoder on Extension methods for interfaces
