1

VS ソリューションの参照を分析するために、この PowerShell スクリプト [https://gist.github.com/557222] を使用しようとしていますが、競合が発生している場所がわかりません。

問題は、次のエラーが原因で機能しないことです。

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 に答える