2017-12-21 19 views
0

Visual Studio 솔루션과 특정 작업에서 모든 링크 된 파일을 제거하고 공유 어셈블리로 대체해야 할 필요가 있습니다. 별도의 vs 프로젝트에서 모든 링크 파일의 목록을 갖고 싶습니다. PowerShell을 사용하지 않으려 고 노력했습니다. 내가Visual Studio 프로젝트 내의 모든 링크를 powershell을 통해 찾으십시오.

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

가 지금은 형태

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

에 입력를 원하는 사용하여 컴파일 노드를 찾을 수있었습니다

<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> 

PROJ 파일의이 부분을 고려 등등 ...

가능합니까?

답변

1

다음과 같이 XML을 구문 분석 할 수 있습니다

[xml]$xml = Get-Content $PathToCsprojFile 

은 그럼 당신은 모든 노드, 예를 들어 액세스 할 수 있습니다 예 :

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