无法将枚举传递给函数PowerShell
我已将代码缩减,以显示当前出现的问题,假设我已正确抓取了适当的对象:无法将枚举传递给函数PowerShell,powershell,tfs,enums,Powershell,Tfs,Enums,我已将代码缩减,以显示当前出现的问题,假设我已正确抓取了适当的对象: [void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.TeamFoundation.Common') #$team is of type TeamFoundationTeam Class $allMembers = $team.GetMembers($tfs, ([Microsoft.TeamFoundation.Framework.Common
[void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.TeamFoundation.Common')
#$team is of type TeamFoundationTeam Class
$allMembers = $team.GetMembers($tfs, ([Microsoft.TeamFoundation.Framework.Common.MembershipQuery]::Direct))
然后我得到以下信息:
无法将值为“Direct”的参数“queryMembership”转换为
“GetMembers”以键入
“Microsoft.TeamFoundation.Framework.Common.MembershipQuery”:“无法”
将值“直接”转换为类型
“Microsoft.TeamFoundation.Framework.Common.MembershipQuery”
因此,我尝试强制转换枚举,将枚举包装在括号中,而不是将枚举包装在括号中,使用add type通过显式版本添加引用,尝试通过load partial使用上述惰性方法添加引用,尝试删除我的本地TFS缓存。我完全不知道如何使其工作。奇怪的是,这是我上一次使用它是在几天前。我缺少的powershell中的枚举有什么奇怪的地方吗?我如何让它工作
我正在使用powershell v3.0
直接使用如何??有效…谢谢。抱歉,powershell有太多愚蠢的问题。编辑:将此作为答案,我会将其标记为正确。能否显示
$team.GetType().Assembly.FullName
和[Microsoft.TeamFoundation.Framework.Common.MembershipQuery]的输出.Assembly.FullName
?您的意思是在ps脚本中使用$allMembers=$team.GetMembers($tfs,Direct)
解决了这个问题吗?是的,奇怪的是,它修复了这个问题(尽管建议使用引号)。我认为正在进行隐式类型转换。如果有两个枚举具有相同的属性名称,但有两个不同的名称空间,您会怎么做?只使用'Direct'
?如何工作…谢谢。抱歉,powershell有太多愚蠢的gotcha。编辑:将此作为答案,我会将其标记为正确。能否显示$team.Get的输出Type().Assembly.FullName
和[Microsoft.TeamFoundation.Framework.Common.MembershipQuery].Assembly.FullName
?您的意思是您在ps脚本中使用$allMembers=$team.GetMembers($tfs,Direct)
解决了这个问题吗?是的,奇怪的是,它修复了它(尽管建议使用引号)。我认为正在进行隐式类型转换。如果有两个属性名称相同但名称空间不同的枚举,您会怎么做?