2017-12-21 14 views
0

Ich habe etwas Wartung in einer Visual Studio-Lösung und in der spezifischen Aufgabe muss ich alle verknüpften Dateien entfernen und ersetzen sie durch eine freigegebene Assembly. Ich möchte eine Liste aller Link-Dateien in dem separaten vs-Projekt haben und ich habe versucht, ohne powershell zu verwenden. Betrachten Sie diesen Abschnitt einer Proj DateiFinden Sie alle Links in einem Visual Studio-Projekt über Powershell

<ItemGroup> 
<Compile Include="..\XXX.Services.Inquiry\src\DTO\AccountingEntry.cs"> 
    <Link>DTO\AccountingEntry.cs</Link> 
</Compile> 
<Compile Include="..\XXX.Services.Inquiry\src\DTO\BalanceDetailItem.cs"> 
    <Link>DTO\BalanceDetailItem.cs</Link> 
</Compile> 
<Compile Include="..\XXX.Services.Inquiry\src\DTO\BalancesForCurrencyItem.cs"> 
    <Link>DTO\BalancesForCurrencyItem.cs</Link> 
</Compile> 
<Compile Include="..\XXX.Services.Inquiry\src\DTO\HistoricalCashSaleFlow.cs"> 
    <Link>DTO\HistoricalCashSaleFlow.cs</Link> 
</Compile> 
<Compile Include="..\XXX.Services.Inquiry\src\DTO\HistoricalChangeBceItem.cs"> 
    <Link>DTO\HistoricalChangeBceItem.cs</Link> 
</Compile> 

Ich habe in der Lage, den Compile-Knoten I

$xx = $proj.GetElementsByTagName("Compile") 

Jetzt mit finden möchte die Eingabe in Form haben

AccountEntry | ..\XXX.Services.Inquiry\src\DTO\AccountingEntry.cs 
BalanceDetailItem | ..\XXX.Services.Inquiry\src\DTO\BalanceDetailItem.cs 

und so weiter ...

Ist es möglich?

Antwort

1

Sie können XML analysieren wie folgt:

[xml]$xml = Get-Content $PathToCsprojFile 

Dann können Sie Zugriff auf alle Knoten z.B. wie:

$xml.Project.ItemGroup.Compile.Include | Where-Object { $_ -eq 'MyIncludeFile.cs'} 
Verwandte Themen