Author MSDE 2000 Setup Packages with Merge Modules -bad approach

Microsoft has an a KB article  HOW TO: Author MSDE 2000 Setup Packages by Using Visual Studio .NET that described how to create own Setup. Our company uses this approach and now have problems with applying SQL Server 2000 SP4.

The latest advice from MS – The Setup utilities for new applications must be written to call the MSDE 2000 Setup utility rather than directly consuming the MSDE 2000 merge modules.

More details about disadvanages of using Merge Modules are on page Using SQL Server Desktop Engine Merge Modules  


How to make TechRepublic blog searchable in Google?

I have a mirror of my old blogs in TechRepublic

I am sure that the TechRepublic blog  pages were searchable in Google on some stage, but the search doesn’t show them now.

It is possible that the link to the  TechRepublic blog  was on one list page(e.g somethink like New TechRepublic Bloggers) but later link was removed by newely joined authors.

Now I want to check would the link from this post help to make my techrepublic blog searchable?

Response.Redirect resolves “~” root path reference.

I like to use ~ to refer to relative to root url paths.It’s well described in article “Understanding Paths in ASP.NET  . But I thought that it is always required to call ResolveUrl to make tilde (“~”) working.

However, I found that Response.Redirect does the URL relative resolution anyway and instead of calling


it can be called just



System.DirectoryServices.PropertyCollection.Item -what returns if propertyName is invalid

I am retrieving some info from Active directory and  I had a question what happens if invalid (non-existing) Property Name to System.DirectoryServices.PropertyCollection.Item  will be passed

E.g -what  would happened if  the code reads  anEntry.Properties[“userAccountControl”].Value ,but DirectoryEntry doesn’t have property “userAccountControl“ .

It is not documented in MSDN  so I had to investigate it myself.

In .Net 1.1 I found that anEntry.Properties[“userAccountControl”] returns not null PropertyValueCollection object, but prop.Value is null.

So the safe code to retrieve properties value should be similar the following:

      int val = 0;
      object oVal =  anEntry.Properties[“userAccountControl”].Value;
      if (null!= oVal) //if property doesn’t exist, than value is null
          val = (int) oVal;
      else   Debug.Assert(false,”anEntry.Properties[“userAccountControl”] not found”);