views:

919

answers:

1

I've started to use a Vista machine for development. In case it is significant: I'm using MSBee so that I can code in the Visual Studio 2005 IDE while still building against the 1.1 framework.

On the Vista machine, when I tried to build a particular vb project, I got this error:

error BC30464: Namespace or type 'Compatibility' in the project-level Imports 'Microsoft.VisualBasic.Compatibility' cannot be found.

The same project built fine on my old XP machine.

I checked in this folder on my Vista machine:

C:\windows\microsoft.net\Framework\v1.1.4322

...and sure enough, "Microsoft.VisualBasic.Compatibility.dll" was missing. So was "Microsoft.VisualBasic.Compatibility.Data.dll". Copying them from my XP machine to my Vista machine allowed me to build the project successfully.

I'm just a bit puzzled as to why this happened. Why was "Microsoft.VisualBasic.Compatibility.dll" missing? I'm also not very comfortable with my chosen solution - copying the DLL manually. It works, but surely there must be a better way.

As far as the configuration:

Vista:

  • .Net Framework 1.1
  • .Net Framework 1.1 SP1
  • .Net Framework 1.1 SDK
  • .Net Framework 1.0
  • .Net Framework 2.0
  • .Net Framework 3.0

XP:

  • .Net Framework 1.1
  • .Net Framework 1.1 SP1
  • .Net Framework 1.1 SDK
  • .Net Framework 1.0
  • .Net Framework 2.0

Anyone know what caused this?

+1  A: 

I know this is older, but wanted to post the answer for future searches.

Since they are only intended for upgrading VB6 code, the Microsoft.VisualBasic.Compatibility DLLs aren't installed with the normal 1.1 framework distribution. They are instead installed with Visual Studio. Since you didn't install VS 2003 the the DLL wasn't installed.

Installing VS 2005 installed the DLLs, but for the 2x framework.

You may have been able to get the DLLs by installing the 1.1 SDK as well.