当我使用 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 SID 的字符串,_azApplication 的类型为 IAzApplication。
clientContext.GetRoles()
其中 clientContext 的类型为 IAzClientContext。
为什么我的解决方案使用 MSBuild 4 构建,而不是使用 MSBuild 3.5,即使我的目标是相同版本的 .NET Framework (3.5)?