我正在尝试执行以下来自这里的示例
dotnet sln AllProjects.sln add **/*.csproj
但我收到了这个错误:
无法找到项目或目录
** / * .csproj
。
看来通配符没有起作用。 我做错了什么?
我正在尝试执行以下来自这里的示例
dotnet sln AllProjects.sln add **/*.csproj
但我收到了这个错误:
无法找到项目或目录
** / * .csproj
。
看来通配符没有起作用。 我做错了什么?
对于Windows,打开PowerShell并运行以下命令将所有项目添加到解决方案文件中:
dotnet sln add (ls -r **/*.csproj)
我错过了这个声明:
Unix/Linux终端支持globbing模式
我的Windows PowerShell解决方案如下:
$projects = Get-ChildItem -Recurse | Where-Object { $_.Name -match '^.+\.(csproj|vbproj)$' }
$uniqueProjects = $projects | Group-Object -Property Name | Where Count -EQ 1 | select -ExpandProperty Group | % { $_.FullName }
Invoke-Expression -Command "dotnet new sln -n AllProjects"
$uniqueProjects | % { Invoke-Expression -Command "dotnet sln AllProjects.sln add ""$_""" }
在Windows上,您还可以使用以下命令将所有子目录中的项目递归地添加到现有解决方案文件中:
FOR /R %i IN (*.csproj) DO dotnet sln add "%i"
另外,如果您需要经常(重新)创建解决方案文件,则可以创建一个批处理文件,其中包含以下内容,然后只需在需要时运行它:
dotnet new sln
FOR /R %%i IN (*.csproj) DO dotnet sln add "%%i"
dotnet sln add (ls -r **/*.csproj)
但是它给了我
$ dotnet sln add (ls -r **\*.csproj)
bash: syntax error near unexpected token `('
然后我尝试了一下
dotnet sln add **/*.csproj
这在我的Git Bash(Windows)上有效。
find . -name "*.csproj" -print0 | xargs -0 dotnet sln add
find . -name "*.csproj" ! -name "exclude-this.csproj" -print0 | xargs -0 dotnet sln add