0

我曾经使用 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,我将项目的目标框架属性更改为 .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。

示例项目也可以从这里下载

我做错了什么?

谢谢

4

1 回答 1

0

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

刚刚在您的演示控制台应用程序中检查了它。

于 2011-09-15T17:01:14.697 回答