Skip to content

Fix CI: pass MSBuildExtensionsPath as -p: property to dotnet build #10

Fix CI: pass MSBuildExtensionsPath as -p: property to dotnet build

Fix CI: pass MSBuildExtensionsPath as -p: property to dotnet build #10

Workflow file for this run

name: Release & Publish NuGet
on:
push:
tags:
- 'v*'
permissions:
contents: write
jobs:
release:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '10.0.x'
- name: Setup NuGet
uses: nuget/setup-nuget@v2
- name: Find MSBuild & VS paths
id: vs
shell: pwsh
run: |
$vswhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe"
$vsPath = & $vswhere -latest -requires Microsoft.Component.MSBuild -property installationPath
$msbuild = & $vswhere -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe" | Select-Object -First 1
Write-Host "VS Installation: $vsPath"
Write-Host "MSBuild: $msbuild"
"MSBUILD=$msbuild" >> $env:GITHUB_OUTPUT
"VS_PATH=$vsPath" >> $env:GITHUB_OUTPUT
- name: Extract version from tag
id: version
shell: pwsh
run: |
$tag = "${{ github.ref_name }}"
$ver = $tag -replace '^v', ''
"VERSION=$ver" >> $env:GITHUB_OUTPUT
- name: Restore & Build UWP library
shell: pwsh
run: |
nuget restore src/CompositionCollectionView/CompositionCollectionView.csproj
& "${{ steps.vs.outputs.MSBUILD }}" src/CompositionCollectionView/CompositionCollectionView.csproj `
/t:Build /p:Configuration=Release /p:Platform=AnyCPU
- name: Restore & Build WinAppSdk library
shell: pwsh
run: |
# dotnet build has .NET 10 SDK but lacks VS's PRI/AppxPackage tools.
# Pass MSBuildExtensionsPath pointing to VS's MSBuild dir so PRI targets resolve correctly.
$msbuildExtPath = "${{ steps.vs.outputs.VS_PATH }}\MSBuild"
Write-Host "MSBuildExtensionsPath: $msbuildExtPath"
dotnet restore src/CompositionCollectionView.WinAppSdk/CompositionCollectionView.WinAppSdk.csproj -p:Platform=x64
dotnet build src/CompositionCollectionView.WinAppSdk/CompositionCollectionView.WinAppSdk.csproj `
-c Release `
--no-restore `
-p:Platform=x64 `
"-p:MSBuildExtensionsPath=$msbuildExtPath"
- name: Pack NuGet
shell: pwsh
run: |
nuget pack CompositionCollectionView.nuspec `
-Version ${{ steps.version.outputs.VERSION }} `
-OutputDirectory artifacts
- name: Push to NuGet.org
shell: pwsh
run: |
dotnet nuget push artifacts/*.nupkg `
--api-key ${{ secrets.NUGET_API_KEY }} `
--source https://api.nuget.org/v3/index.json `
--skip-duplicate
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: artifacts/*.nupkg