我曾经使用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
下载我做错了什么?
谢谢
答案 0 :(得分:0)
Microsoft.SqlServer.Smo.dll
内置.Net 3.5。如果项目的目标框架是.Net Framework 2.0,则根本无法使用它。
只需在您的演示控制台应用中查看它。