我正在尝试使用这个powershell脚本[https://gist.github.com/557222]来分析我的VS解决方案参考,因为我有冲突,但我不知道在哪里。
问题是它不起作用,因为这个错误:
ForEach-Object : Property 'HintPath' cannot be found on this object. Make sure that it exists.
At C:\bsi\Projects\Bsi.ManagementConsole\Branches\Tango58\Get-VSSolutionReferences.ps1:37 char:31
+ ForEach-Object <<<< {
+ CategoryInfo : InvalidOperation: (.:OperatorToken) [ForEach-Object], RuntimeException
+ FullyQualifiedErrorId : PropertyNotFoundStrict,Microsoft.PowerShell.Commands.ForEachObjectCommand
在某些情况下,XML似乎没有任何HintPath元素。如果我删除有问题的行,脚本运行正常。但是,它不提供我需要的最相关信息:HintPath。
所以,我需要的是在可能的情况下获得该信息。我的意思是,如果XML元素具有HintPath元素,我需要它,当它没有显示任何内容时。
我问这个因为我不知道Powershell,我尝试的努力并不重要,我不能按照我的意愿去做。
请问你能帮帮我吗?
答案 0 :(得分:2)
注释掉行Set-StrictMode -Version Latest
,因为当您尝试访问对象上的属性HintPath
并且该属性不存在时,会导致错误。或者您可以将$_.HintPath
上的检查修改为:
if (($_.psobject.Properties.Match('HintPath')) -ne $null -and $_.HintPath) {
$RefPath = $ProjectRoot | Join-Path -ChildPath $_.HintPath
}
但是从我的简单测试中,您还需要在脚本的其他部分执行此操作,例如: SpecificVersion could not be found
。