我有一個包含多個項目的Visual Studio解決方案文件。在Visual Studio解決方案文件中更新每個項目的Visual Studio項目配置
對於給定的解決方案配置,比如Dev,很少的項目使用Debug配置。我希望所有項目都能使用Dev配置進行Dev解決方案配置。
而不是使用配置管理器和更新每個項目的配置所有可能的平臺選項(x64,任何CPU,混合平臺),我希望能夠自動執行此操作。使用Configuration Manager爲所有項目的所有解決方案配置進行更新非常繁瑣。
因爲我有超過5個解決方案配置,並且解決方案中有20多個項目。
在記事本++中編輯解決方案文件將有助於我猜測。我還沒有嘗試過。但這是唯一的方法嗎?
更新:
我起草一個簡單的PS腳本來實現這一目標使用PowerShell來更新SLN文件,單個SLN配置。但尋找替代方法。
$content = Get-Content "E:\SlnFolder\SolutionFile.sln" | ForEach-Object {
$line = $_
if ($line -match "(^\s*{[a-zA-Z0-9]+-[a-zA-Z0-9]+-[a-zA-Z0-9]+-[a-zA-Z0-9]+-[a-zA-Z0-9]+}.Dev\|[a-zA-Z0-9\.\s]+ =)([a-zA-Z\s]+)")
{
$line -replace "(^\s*{[a-zA-Z0-9]+-[a-zA-Z0-9]+-[a-zA-Z0-9]+-[a-zA-Z0-9]+-[a-zA-Z0-9]+}.Dev\|[a-zA-Z0-9\.\s]+ =)([a-zA-Z\s]+)",'$1Dev'
}
else
{
$line
}
} | Set-Content -Path "E:\SlnFolder\SolutionFile_Updated.sln"
有足夠的空間來擦亮這個腳本。將檢查。
方法是通過Microsoft.Build.BuildEngine編輯文件,例如見http://stackoverflow.com/questions/7887538/modify-programatically-csproj-files#8492560 – stijn
@stijn - 在你提供的線索討論的答案現在已經過時。我找到了另一個線程[http://stackoverflow.com/questions/707107/parsing-visual-studio-solution-files]在哪裏有一個新的使用Microsoft.Build.Construction.SolutionFile.Parse( )方法。MSBuild路徑是C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ MSBuild \ v14.0 \ Microsoft.Build.dll –
我不確定它是否真的過時了嗎?注意它是用來改變*項目*,你鏈接到的問題是關於*解決方案*。雖然對於你的情況你可能需要兩個。 – stijn