Справочник по Windows 7 x64 Edition и Visual Studio 2010
Я использовал Visual Studio 2008. Затем я решил использовать Windows 7 x64 и Visual Studio 2010, чтобы использовать новые функции IDE в нашем цикле разработки и т. Д.
Один из наших проектов использует Microsoft.SqlServer.Smo.dll и связал некоторые библиотеки управления SQL-сервером. У меня было много проблем, когда я пытался компилировать новые проекты.
Вот моя проблема.
Я создаю очень простой консольный проект, затем добавляю ссылку на 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 Framework проекта на.Net Framework 4 (не профиль клиента). Он успешно скомпилирован.
Когда я пытался изменить целевой фреймворк на.Net Framework 2.0, он выдавал ошибку, что
Ошибка 1 Тип или имя пространства имен "ApplicationRole" не существует в пространстве имен "Microsoft.SqlServer.Management.Smo" (отсутствует ссылка на сборку?) C:\Users\fatihy\ Documents\visual studio 2010\Projects\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.
Пример проекта также можно скачать здесь
Что я делаю не так?
Спасибо
1 ответ
Microsoft.SqlServer.Smo.dll
встроен в.Net 3.5. Вы просто не сможете использовать его, если вашей целевой платформой для проекта является.Net Framework 2.0.
Только что проверил это в приложении демо-консоли.