Windows 7 x64 Edition and Visual Studio 2010 dll reference

816 views Asked by At

I used to use Visual Studio 2008. Then I decided to take Windows 7 x64 and Visual Studio 2010 to use new IDE features inside of the our development cycle etc.

One of our projects is using Microsoft.SqlServer.Smo.dll and related some SQL server management DLLs also. I got many problems when I tried to compile new projects.

Here is the my problem.

  • I create a very simple console project, then I added Microsoft.SqlServer.Smo.dll reference and I put a simple below line into main() function.

        static void Main(string[] args)
        {
            Microsoft.SqlServer.Management.Smo.ApplicationRole role =
                new Microsoft.SqlServer.Management.Smo.ApplicationRole();
        }
    

ApplicationRole class is coming from Microsoft.SqlServer.Smo.dll, I changed Target framework property of project to .Net Framework 4 (not client profile). It compiled successfully.

When I tried to change target framework to .Net Framework 2.0 it's giving error that

Error 1 The type or namespace name 'ApplicationRole' does not exist in the namespace 'Microsoft.SqlServer.Management.Smo' (are you missing an assembly reference?) C:\Users\fatihy\documents\visual studio 2010\Projects\ConsoleApplication2\ConsoleApplication2\Program.cs 14 52 ConsoleApplication2

That's the small one of errors what I have, but I'm sure others related with this issue.

When I checked Microsoft.SqlServer.Smo.dll with corflags tool see below,

Setting environment for using Microsoft Visual Studio 2010 x86 tools.

c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>corflags "C:\Program File
s\Microsoft SQL Server\100\SDK\Assemblies\Microsoft.SqlServer.Smo.dll"
Microsoft (R) .NET Framework CorFlags Conversion Tool.  Version  4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Version   : v2.0.50727
CLR Header: 2.5
PE        : PE32
CorFlags  : 9
ILONLY    : 1
32BIT     : 0
Signed    : 1

c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>

As you can see this dll is supporting .net 2.0 CRL.

Sample project can be also downloaded from here

What I'm doing wrong ?

Thank you

1

There are 1 answers

0
Maxim V. Pavlov On

Microsoft.SqlServer.Smo.dll is build in .Net 3.5. You simply can't use it if your target framework for the project is .Net Framework 2.0.

Just checked it in your demo console app.