问题描述
我有一个父文件夹,其中包含多个子文件夹,每个子文件夹均包含VS C#解决方案文件。每个带有解决方案的子文件夹还可能包含几个带有.csproj
文件的内部子文件夹。
看起来可能是这样的:
Parent
|-->A
| |-->a.sln
| X
| |-->x.csproj
| Y
| |-->y.csproj
|-->B
|-->b.sln
Z
|-->z.csproj
W
|-->w.csproj
我想获取所有项目使用的所有软件包(依赖项)的列表。以后再用它来获取许可证。 我知道有一个选项可以运行:
@( Get-Project -All | ? { $_.ProjectName } | % { Get-Package -ProjectName $_.ProjectName } )
但是由于我不是在VS中打开解决方案,而只是在一个文件夹中打开,所以它不起作用。 我试图通过运行脚本从每个解决方案中获取所有项目的列表:
$slnFiles = Get-ChildItem -Path $parentPath -Directory | % { Get-ChildItem $_ -File -Filter "*.sln"}
$projList = @()
foreach ($file in $slnFiles){
dotnet sln $slnFile.FullName list | % {if($_ -like '*.csproj'){$projList += $_}}
}
哪位给了我
X\x.csproj
Y\y.csproj
Z\z.csproj
W\w.csproj
如果我尝试将项目路径/名称与Get-Package -ProjectName x
一起使用,则会收到错误消息:
Get-Package : Project 'x' is not found.
我在这里停留了一段时间。如何以Get-Package
接受的方式获取项目列表?
最终,我的目标是为所有项目中使用的每个可能包提取所有许可证路径。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)