Andrew Arnott

News from my corner of the Visual Studio Project & Build team, programming tips, and solutions to common programming issues.

How to force Vista to NOT elevate an application

User Account Control, the feature in Vista that causes installers and some applications to require "elevation" to administrator privileges to run, cuts both ways.  It’s designed to protect users from apps that try to make system-level changes by giving the user the heads up that it’s about to happen and gives the user the chance… Read more

GZip encoder for Compact WCF

The GZip encoder is not included in NetCF as it is on the desktop WCF, but it isn’t hard to build yourself and in fact we have released a sample of exactly how to add your own GZip encoder to NetCF: So many people have asked me for it lately I thought I’d better… Read more

If the MS Office team wrote Visual Studio

Some humorous pros and cons to Visual Studio, if the Microsoft Office team were ever to take over. (disclaimer: this is a tongue in cheek post.  No offense — only laughs intended) Visual Studio 2008 would be able to load VC7 projects, modify them in any way VC7 allowed, and save the project back to… Read more

OpenID and ASP.NET web sites

If you are a web developer I hope you’ve considered accepting OpenID credentials for logging in your users.  If you have an ASP.NET web site, the process of adding OpenID support to your web site couldn’t be easier when you use the free C# DotNetOpenId library.  Supporting OpenID is a great idea: No more “I… Read more

Why you should never use TCHAR in C++ header files

In C++, TCHAR, LPCTSTR, CString, and other types discretely change to their char/WCHAR, CStringA/CStringW counterparts depending on whether UNICODE is defined in your source code.  Cool.  By conscientiously using _countof(x) instead of sizeof(x) where appropriate and TCHAR’s everywhere instead of char/WCHAR, you can write code that will compile with ANSI or UNICODE support as easy… Read more

Why your Visual Studio add-in fails to load with error 0x80004005

Writing Visual Studio add-ins gives you the power to do some impressive things within the IDE to enhance your productivity.  Unfortunately getting your add-in to load into Visual Studio can sometimes be a pain.  Here’s just a tip you should know about the .AddIn file that Visual Studio generates for you. The path you provide… Read more

Why double-clicking on an .SLN file doesn’t always launch Visual Studio

Well this is my first post as a member of the Visual Studio Platform & Ecosystem team.  My second full day on the job, and I’ve found some less-than-ideal areas of Visual Studio that I’m eager to improve for myself and for you, our customers.  How exciting.  I’ll do my best to post to my… Read more

Write a NetCF app that provisions your device from your device

My first post in the provisioning series introduced what provisioning of your Windows Mobile device means and the basics of why you would want to do it.  In future posts I’ll give some concrete examples of XML that accomplish a few common tasks.  But what good are XML examples if you can’t try them out… Read more

Microsoft launches MSDN Code Gallery for open-source sharing

Microsoft recently launched the MSDN Code Gallery for Microsoft employees and others to share code and software using the Microsoft Public License.  MSDN Code Gallery looks and feels very much like CodePlex, but Code Gallery lacks the TFS source control feature and developers can only publish their source code and binaries as releases. As a… Read more