好的家伙,这是五月,我们还没有从微软的正式解决方案。我有一些使用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
}
}
删除,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添加/删除命令。这可能可以清理成一个交互式脚本。
- 您还可以更改内容,以便不必单独添加/删除脚本,只需阅读Includes.json,然后通过解析.sln文件将其与目前解决方案中的项目进行比较。
只是想一想。这是回购,如果你想克隆/下载:https://github.com/rushfive/VS2017-Includes
可能重复[.net核心(csproj)global.json'项目'等效](http://stackoverflow.com/questions/42773815/net-core-的csproj-全球JSON-项目等效) – Set