2011-09-15 48 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,那麼您無法使用它。

剛剛在您的演示控制檯應用程序中檢查過它。

相關問題