PowerShell上からソリューション内の指定のプロジェクトを  
VisualStudio.DTEを介してビルドしたいのですが  
うまくいきません  
おそらくソリューション内のソリューションフォルダの階層を潜る必要があると思うのですが  
方法がわからないです

ソリューションの構成は以下です  
Solutionフォルダ  
│ └─Project1フォルダ  
│ │ └─Project.csproj  
│ │  
│ └─Project2フォルダ  
│ └─Projec2.csproj  
│  
└─Solution.sln  
└─Build.ps1

以下コードです

```

    $VSDTE=New-Object -ComObject VisualStudio.DTE
    $VSDTE.MainWindow.Visible=$True
    $VSDTE.Solution.Open("$PSScriptRoot\○○○○.sln")
    foreach($prj in $VSDTE.Solution.Projects)
    {
        // ここで階層を潜りたい
        $VSDTE.Solution.SolutionBuild.BuildProject("Release", $prj.UniqueName, $true)
    }
    
    $VSDTE.Quit()
    [System.Runtime.Interopservices.Marshal]::ReleaseComObject($VSDTE)
    
```

参考  
[MicroSoft Docs EnvDTE Namespace](https://docs.microsoft.com/en-
us/dotnet/api/envdte?view=visualstudiosdk-2017)
CC BY-SA 4.0
2020-04-20T12:44:50.747
65790
2020-04-23T11:40:47.773
39722
question
visual-studio powershell
PowerShellからプロジェクトのビルドができない
> 質問からは外れますが、vswhere を使えばMSBuildのパスを取得できます。ご参考まで。 – nee 2日前

今回はこちらで対応することにしました  
皆さんご回答ありがとうございました
CC BY-SA 4.0
2020-04-23T11:40:47.773
65893
2020-04-23T11:40:47.773
39722
65790
answer