Когда я создаю свое решение с помощью MSBuild 4, оно успешно компилируется:
C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ MSBuild.exe MySolution.sln
Сборка выполнена.
0 Warning(s) 0 Error(s)
Но когда я пытаюсь сделать то же самое с помощью MSBuild 3.5, я получаю следующую ошибку, несмотря на то, что источник тот же, и я использую те же библиотеки и ту же версию .NET Framework.
C: \ Windows \ Microsoft.NET \ Framework \ v3.5 \ MSBuild.exe MySolution.sln
ошибка CS1501: нет перегрузки для метода «InitializeClientContextFromStringSid», принимающего аргументы «2»
ошибка CS1501: нет перегрузки для метода GetRoles, принимающего аргументы "0"
Ошибка, которую я получаю, связана с диспетчером авторизации (AzMan).
Метод InitializeClientContextFromStringSid в первой ошибке принадлежит общедоступному интерфейсу IAzApplication, члену Microsoft.Interop.Security.AzRoles.
Метод GetRoles во второй ошибке принадлежит общедоступному интерфейсу IAzClientContext, который также является членом Microsoft.Interop.Security.AzRoles.
Я использую методы следующим образом:
var clientContext = _azApplication.InitializeClientContextFromStringSid(member, 0);
где член переменной - это строка, содержащая идентификатор безопасности Windows Active Directory от пользователя, а _azApplication имеет тип IAzApplication.
clientContext.GetRoles()
где clientContext имеет тип IAzClientContext.
Почему мое решение строится с использованием MSBuild 4, но не MSBuild 3.5, хотя я ориентируюсь на ту же версию .NET Framework (3.5)?