我已经在Visual Studio解决方案上做了一些保持,并且在特定任务中我要删除所有链接文件并用共享程序集替换它们。我希望在单独的vs项目中有一个所有链接文件的列表,我试过没有运气使用PowerShell。考虑一下proj文件的这一部分
<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>
我已经能够找到使用的Compile节点
$xx = $proj.GetElementsByTagName("Compile")
现在我希望在表单中输入
AccountEntry | ..\XXX.Services.Inquiry\src\DTO\AccountingEntry.cs
BalanceDetailItem | ..\XXX.Services.Inquiry\src\DTO\BalanceDetailItem.cs
等等...
可能吗?
您可以按如下方式解析XML:
[xml]$xml = Get-Content $PathToCsprojFile
然后你可以访问所有节点,例如如:
$xml.Project.ItemGroup.Compile.Include | Where-Object { $_ -eq 'MyIncludeFile.cs'}