none
Проблемы подключения сборки и версий .NET RRS feed

  • Вопрос

  • Пытаюсь подключить библиотеку Microsoft.Exchange.WebServices для доступа к API Exchange 2012.

    Брал тут

    Сперва он просто отказывался подключать к проекту сборку. Я стандартно делал ссылку на сборку, он ее изначально видел, распознавал, а при построении вдруг терял из виду и писал:

    Имя типа или пространства имен "Exchange" отсутствует в пространстве имен "Microsoft" (пропущена ссылка на сборку?)

    Битый час думал, в чем же дело. Магия какая-то чесслово. Потом поменял требуемую версию в свойствах проекта в разделе "Приложение" с .Net Framework 4 Client Profile на .Net Framework 4... и он начал компилироваться!!! "Построение успешно завершено" радостно пишет мне строка состояния. С каких это бубенцов, я в упор не понимаю. Ну да ладно, компилится - это уже хорошо. Однако доверие к адекватности Visual Studio 2010 подорвано. Исполняю значт я следующий код:

    ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2012);
                service.Credentials = new WebCredentials(UserName, Password, UserDomain);
                service.AutodiscoverUrl(UnameAlias);
                Folder inbox = Folder.Bind(service, WellKnownFolderName.Inbox);

    И тут идет следующий перл:

    Не удалось загрузить тип \"System.Runtime.CompilerServices.ExtensionAttribute\" из сборки \"mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\".":"System.Runtime.CompilerServices.ExtensionAttribute"}

    Вот он-то уже меня вогнал в ступор не на один час. Помогите разобраться, пожалуйста! Спасибо.

    p.s. проект - пустое приложение с подключенной консолью.

    24 августа 2012 г. 7:34

Ответы

  • Привет, а у вас Warnings в Visual Studio не выключены? Потому что там при неудачном подключении сборки пишется причина:

    Warning	1	The referenced assembly "Microsoft.Exchange.WebServices" could not be resolved because it has a dependency on "System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which is not in the currently targeted framework ".NETFramework,Version=v4.0,Profile=Client". Please remove references to assemblies not in the targeted framework or consider retargeting your project.	ConsoleApplication3
    Warning	2	The referenced assembly "Microsoft.Exchange.WebServices.Auth" could not be resolved because it has a dependency on "System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" which is not in the currently targeted framework ".NETFramework,Version=v4.0,Profile=Client". Please remove references to assemblies not in the targeted framework or consider retargeting your project.	ConsoleApplication3
    

    Это по первоначальной вашей проблеме.

    По второй проблеме - так происходит скорей всего потому что данные dll были скомпилированы под .net 4.5, а вы пытаетесь их запустить на .net 4. Вам нужно либо использовать старую версию библиотеки (не 2.0), либо дождаться ее выхода (щас только Technical Preview), либо установить .net 4.5


    Для связи [mail]

    • Помечено в качестве ответа Abolmasov Dmitry 6 сентября 2012 г. 7:06
    27 августа 2012 г. 7:29

Все ответы

  • Добрый день. У вас ссылка на упомянутую в ошибке сборку mscorlib.dll добавлена?
    24 августа 2012 г. 12:02
    Отвечающий
  • Это системная библиотека. Она загружается автоматом, хотя в списке ссылок проекта ее нет.

    Но для верности попробовал добавить. Результат (как и ожидалось):

    "Не удается добавить ссылку на "mscorlib". Ссылка на этот компонент уже автоматически добавлена системой построения."

    Ума не приложу, что не так.

    24 августа 2012 г. 12:54
  • Привет, а у вас Warnings в Visual Studio не выключены? Потому что там при неудачном подключении сборки пишется причина:

    Warning	1	The referenced assembly "Microsoft.Exchange.WebServices" could not be resolved because it has a dependency on "System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which is not in the currently targeted framework ".NETFramework,Version=v4.0,Profile=Client". Please remove references to assemblies not in the targeted framework or consider retargeting your project.	ConsoleApplication3
    Warning	2	The referenced assembly "Microsoft.Exchange.WebServices.Auth" could not be resolved because it has a dependency on "System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" which is not in the currently targeted framework ".NETFramework,Version=v4.0,Profile=Client". Please remove references to assemblies not in the targeted framework or consider retargeting your project.	ConsoleApplication3
    

    Это по первоначальной вашей проблеме.

    По второй проблеме - так происходит скорей всего потому что данные dll были скомпилированы под .net 4.5, а вы пытаетесь их запустить на .net 4. Вам нужно либо использовать старую версию библиотеки (не 2.0), либо дождаться ее выхода (щас только Technical Preview), либо установить .net 4.5


    Для связи [mail]

    • Помечено в качестве ответа Abolmasov Dmitry 6 сентября 2012 г. 7:06
    27 августа 2012 г. 7:29