1

我正在尝试使用此 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,无论我多么努力,我都无法按照我的意愿工作。

请问你能帮帮我吗?

4

1 回答 1

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.

于 2012-12-20T06:31:24.110 回答