Isa*_*Lee 6 c# visual-studio asp.net-core visual-studio-2017
在VS 2015中,我们曾经能够在global.json中指定本地路径,如下所示:
{
“projects”: [ “src”, “test”, “C:\\path\\to\\other\\projects” ]
}
Run Code Online (Sandbox Code Playgroud)
然后,它会将该路径中的所有项目添加到当前解决方案中,从而使我们能够轻松地从现有项目中引用它们.
现在VS 2017已经将其模型改为使用csproj,并在此过程中摆脱了project.json和global.json,有没有人知道这种方法?
我得到的最好的是将其他项目逐个手动地包含在解决方案中.然后,在所有需要引用它的现有项目中,我必须编辑它们的csproj以包含它们.与之前简单地在一个位置包含文件路径的方式相比,这非常麻烦.
感谢您的帮助.
好吧,伙计们,现在已经是五月份了,我们仍然没有得到微软的官方解决方案。我使用 Powershell 和新的 .NET core CLI 得到了一些东西。dotnet.exe 中已经内置了用于在项目中添加/删除解决方案的命令,因此这就是我的想法。
包含.json
{
"Includes": [
"C:\\projects\\SomeProjectA\\src",
"C:\\git\\SomeProjectB\\src"
]
}
Run Code Online (Sandbox Code Playgroud)
添加包含.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
}
}
Run Code Online (Sandbox Code Playgroud)
删除-包含.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
}
}
Run Code Online (Sandbox Code Playgroud)
与使用旧的 Global.json 文件相比,这需要几个额外的步骤,但它可以满足我们的需要。为了使其真正方便,请添加一个解决方案文件夹并包含 Includes.json,以便您可以在 Visual Studio 中轻松修改它。
一些注意事项:
仅供思考。如果您想克隆/下载,这里是存储库:https://github.com/rush Five/ VS2017-Includes
| 归档时间: |
|
| 查看次数: |
680 次 |
| 最近记录: |