まあ、5月だし、マイクロソフトの正式な解決策はまだありません。私はPowershellと新しい.NETコアCLIを使って何か作業しています。プロジェクトからソリューションを追加/削除するためのコマンドは既にdotnet.exeに組み込まれています。だからこれが私が思いついたものです。
Includes.json
{
"Includes": [
"C:\\projects\\SomeProjectA\\src",
"C:\\git\\SomeProjectB\\src"
]
}
追加-Includes.ps1
echo "Beginning import of projects in Includes.json"
$JsonIncludes = (Get-Content -Raw -Path "Includes.json") | ConvertFrom-Json
$IncludePaths = $JsonIncludes.Includes;
foreach ($IncludePath in $IncludePaths) {
$ProjectFiles = Get-ChildItem ($IncludePath + "\*") `
-Include *.csproj `
-Recurse `
| % {$_.FullName }
foreach ($ProjectFile in $ProjectFiles) {
dotnet sln add $ProjectFile
}
}
は、Remove-Includes.ps1を
echo "Beginning removal of projects in Includes.json"
$JsonIncludes = (Get-Content -Raw -Path "Includes.json") | ConvertFrom-Json
$IncludePaths = $JsonIncludes.Includes;
foreach ($IncludePath in $IncludePaths) {
$ProjectFiles = Get-ChildItem ($IncludePath + "\*") `
-Include *.csproj `
-Recurse `
| % {$_.FullName }
foreach ($ProjectFile in $ProjectFiles) {
dotnet sln remove $ProjectFile
}
}
これは、古いGlobal.jsonファイルを使用するのに比べていくつかのステップが追加されましたが、必要な処理は実行されます。これを便利にするには、ソリューションフォルダを追加し、Includes.jsonをインクルードして、Visual Studio内から簡単に変更できるようにします。
いくつかの注意:
- の追加は/スクリプトを削除するには、ほぼ正確に同じですが、唯一の違いはDOTNETのSLNは、コマンドを追加/削除です。これは、おそらく1つの対話型スクリプトにクリーンアップすることができます。
- 別の追加/削除スクリプトを使用する代わりに、Includes.jsonを読み込んで、.slnファイルを解析して現在解決されているプロジェクトと比較することもできます。
https://github.com/rushfive/VS2017-Includes
[.net core(csproj)global.json 'projects'相当]の複製(http://stackoverflow.com/questions/42773815/net-core-japanese/)を複製するには、ここにレポがあります。 csproj-global-json-projects-equivalent) – Set