当我使用 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'属于Microsoft.Interop.Security.AzRoles的成员公共接口IAzApplication。
第二个错误中的方法'GetRoles'属于公共接口IAzClientContext,也是Microsoft.Interop.Security.AzRoles的成员。
我通过以下方式使用这些方法:
var clientContext = _azApplication.InitializeClientContextFromStringSid(member, 0);
其中变量成员是包含来自用户的 Windows Active Directory SID 的字符串,_azApplication 的类型为 IAzApplication。
clientContext.GetRoles()
其中clientContext 是IAzClientContext 类型。
为什么我的解决方案是使用 MSBuild 4 而不是使用 MSBuild 3.5 构建的,即使我的目标是相同版本的 .NET Framework (3.5)?