Powershell 核心:正在加载 Microsoft.Build

Powershell Core: Loading Microsoft.Build

我想在 GitLab CI/CD 脚本(Alpine .NET Core SDK 图像)中枚举 MSBuild 项目的所有评估属性。

[Reflection.Assembly]::Load("Microsoft.Build")
[Reflection.Assembly]::LoadWithPartialName("Microsoft.Build")
Add-Type -AssemblyName "Microsoft.Build"

New-Object Microsoft.Build.Evaluation.Project($csproj)

但是,上面的 none 组合似乎找到了 Microsoft.Build 程序集,让我实例化一个 Microsoft.Build.Evaluation.Project 实例。

我假设 SDK 映像中必须有 Microsoft.Build 程序集。

好吧,这似乎可以解决问题。

$msbuild_asm = Get-ChildItem -Path / -File -Filter "Microsoft.Build.dll" `
                             -Recurse `
                             -ErrorAction SilentlyContinue `
             | Select-Object -Last 1
Add-Type -Path $msbuild_asm