Когда я создаю свое решение с использованием 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);
, где переменная-член - это строка, содержащая SID Windows Active Directory от пользователя, а _azApplication имеет тип IAzApplication.
clientContext.GetRoles()
, где clientContext имеет тип IAzClientContext.
Почему мое решение строится с MSBuild 4, а не с MSBuild 3.5, хотя я нацеливаюсь на ту же версию .NET Framework (3.5)?