2011-09-15 113 views
0

我曾经使用Visual Studio 2008。然后,我决定利用Windows 7 x64和Visual Studio 2010中使用我们的开发周期等的Windows 7 64位版和Visual Studio 2010的dll参考

内新的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框架4(不是客户端配置文件)。它编译成功。

当我试图目标框架更改为.Net框架2.0它给错误

错误1类型或命名空间名称ApplicationRole'不存在命名空间“存在Microsoft.SqlServer.Management.Smo “(是否缺少程序集引用吗?)C:\用户\ fatihy \文档\ Visual Studio 2010的\项目\ ConsoleApplication2 \ ConsoleApplication2 \的Program.cs 14 52 ConsoleApplication2

这是错误我有什么的一个小,但我确信其他人与这个问题有关。

当我检查Microsoft.SqlServer.Smo.dll与corflags工具见下文,

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

确认 - 从我所看到的DLL输出中,支持的版本是“2.0.50727”。这个版本通常也被称为.Net 3.5。当你说你将目标框架改为2.0版时,你是指实际版本“2.0”,还是缩写了v3.5的别名“2.0.50727”? – Smudge202

+0

将目标平台从客户端配置文件更改为完整版通常可解决此类问题。 –

回答

0

Microsoft.SqlServer.Smo.dll是建立在.net 3.5。如果您的项目目标框架是.Net Framework 2.0,那么您无法使用它。

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

相关问题