Windows 7 x64 Edition和Visual Studio 2010 dll参考

时间:2011-09-15 15:59:02

标签: .net visual-studio-2010 .net-4.0 corflags

我曾经使用Visual Studio 2008.然后我决定采用Windows 7 x64和Visual Studio 2010在我们的开发周期内使用新的IDE功能等。

我们的一个项目是使用Microsoft.SqlServer.Smo.dll并且还涉及一些SQL服务器管理DLL。当我尝试编译新项目时遇到了很多问题。

这是我的问题。

  • 我创建了一个非常简单的控制台项目,然后我添加了Microsoft.SqlServer.Smo.dll引用,并在main()函数中添加了一个简单的下面一行。

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

ApplicationRole类来自Microsoft.SqlServer.Smo.dll,我将项目的Target框架属性更改为.Net Framework 4(不是客户端配置文件)。它编译成功。

当我尝试将目标框架更改为.Net Framework 2.0时,它会给出错误

错误1命名空间“Microsoft.SqlServer.Management.Smo”中不存在类型或命名空间名称“ApplicationRole”(您是否缺少程序集引用?)C:\ Users \ fatihy \ documents \ visual studio 2010 \ Projects \ ConsoleApplication2 \ ConsoleApplication2 \ Program.cs 14 52 ConsoleApplication2

这是我所拥有的一小部分错误,但我确信其他人也会遇到这个问题。

当我使用corflags工具检查Microsoft.SqlServer.Smo.dll时,请参阅下面的

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>

正如你所看到的,这个dll支持.net 2.0 CRL。

示例项目也可以从here

下载

我做错了什么?

谢谢

1 个答案:

答案 0 :(得分:0)

Microsoft.SqlServer.Smo.dll内置.Net 3.5。如果项目的目标框架是.Net Framework 2.0,则根本无法使用它。

只需在您的演示控制台应用中查看它。