From 6d57979293ad999ff8de5af3ae30303867594407 Mon Sep 17 00:00:00 2001 From: Kennan Chan Date: Thu, 9 Oct 2025 09:51:58 +0000 Subject: [PATCH 01/11] downgrade windows version --- .github/workflows/dotnet-desktop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dotnet-desktop.yml b/.github/workflows/dotnet-desktop.yml index 18ae95b..095f373 100644 --- a/.github/workflows/dotnet-desktop.yml +++ b/.github/workflows/dotnet-desktop.yml @@ -50,7 +50,7 @@ env: jobs: build: - runs-on: windows-latest + runs-on: windows-2019 steps: - name: Checkout code From c6a8a9423426db5ecc4063f692240913aad23c41 Mon Sep 17 00:00:00 2001 From: Kennan Chan Date: Thu, 9 Oct 2025 09:58:26 +0000 Subject: [PATCH 02/11] download .NET --- .github/workflows/dotnet-desktop.yml | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dotnet-desktop.yml b/.github/workflows/dotnet-desktop.yml index 095f373..b799728 100644 --- a/.github/workflows/dotnet-desktop.yml +++ b/.github/workflows/dotnet-desktop.yml @@ -50,18 +50,36 @@ env: jobs: build: - runs-on: windows-2019 + runs-on: windows-latest steps: - name: Checkout code uses: actions/checkout@v4 + - name: Install .NET Framework 4.0 Targeting Pack + run: | + # 下载并安装 .NET Framework 4.0 开发者包 + $targetingPackUrl = "https://download.microsoft.com/download/8/E/1/8E1DBEFC-99EB-4DE1-9A3D-6D8E0E2EC6E6/NDP40-TargetingPack-KB2468871.exe" + $installerPath = "$env:TEMP\NDP40-TargetingPack.exe" + + Invoke-WebRequest -Uri $targetingPackUrl -OutFile $installerPath + Start-Process -FilePath $installerPath -ArgumentList "/quiet", "/norestart" -Wait + + - name: Install .NET Framework 4.5 Targeting Pack + run: | + # 下载并安装 .NET Framework 4.5 开发者包 + $targetingPackUrl = "https://download.microsoft.com/download/A/1/D/A1D07600-6915-4CB8-A931-9A980EFC1C1C/NDP45-TargetingPack-KB2901954.exe" + $installerPath = "$env:TEMP\NDP45-TargetingPack.exe" + + Invoke-WebRequest -Uri $targetingPackUrl -OutFile $installerPath + Start-Process -FilePath $installerPath -ArgumentList "/quiet", "/norestart" -Wait + - name: Setup .NET uses: actions/setup-dotnet@v3 with: dotnet-version: ${{ env.DOTNET_VERSION }} - - name: Setup MSBuild for .NET Framework + - name: Setup MSBuild uses: microsoft/setup-msbuild@v1.1 - name: Restore NuGet packages From 80afa42ca1517d491849bdf9467bc1d3c21da250 Mon Sep 17 00:00:00 2001 From: Kennan Chan Date: Thu, 9 Oct 2025 10:10:05 +0000 Subject: [PATCH 03/11] add dependency --- .github/workflows/dotnet-desktop.yml | 18 ------------------ Revit.Async.NET40/packages.config | 1 + Revit.Async/packages.config | 1 + 3 files changed, 2 insertions(+), 18 deletions(-) diff --git a/.github/workflows/dotnet-desktop.yml b/.github/workflows/dotnet-desktop.yml index b799728..3345d1c 100644 --- a/.github/workflows/dotnet-desktop.yml +++ b/.github/workflows/dotnet-desktop.yml @@ -55,24 +55,6 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 - - - name: Install .NET Framework 4.0 Targeting Pack - run: | - # 下载并安装 .NET Framework 4.0 开发者包 - $targetingPackUrl = "https://download.microsoft.com/download/8/E/1/8E1DBEFC-99EB-4DE1-9A3D-6D8E0E2EC6E6/NDP40-TargetingPack-KB2468871.exe" - $installerPath = "$env:TEMP\NDP40-TargetingPack.exe" - - Invoke-WebRequest -Uri $targetingPackUrl -OutFile $installerPath - Start-Process -FilePath $installerPath -ArgumentList "/quiet", "/norestart" -Wait - - - name: Install .NET Framework 4.5 Targeting Pack - run: | - # 下载并安装 .NET Framework 4.5 开发者包 - $targetingPackUrl = "https://download.microsoft.com/download/A/1/D/A1D07600-6915-4CB8-A931-9A980EFC1C1C/NDP45-TargetingPack-KB2901954.exe" - $installerPath = "$env:TEMP\NDP45-TargetingPack.exe" - - Invoke-WebRequest -Uri $targetingPackUrl -OutFile $installerPath - Start-Process -FilePath $installerPath -ArgumentList "/quiet", "/norestart" -Wait - name: Setup .NET uses: actions/setup-dotnet@v3 diff --git a/Revit.Async.NET40/packages.config b/Revit.Async.NET40/packages.config index 89863bc..cc85147 100644 --- a/Revit.Async.NET40/packages.config +++ b/Revit.Async.NET40/packages.config @@ -1,4 +1,5 @@  + \ No newline at end of file diff --git a/Revit.Async/packages.config b/Revit.Async/packages.config index 32f5cca..68b3835 100644 --- a/Revit.Async/packages.config +++ b/Revit.Async/packages.config @@ -1,4 +1,5 @@  + \ No newline at end of file From 040c0b2a5f93fce3b24e0cdf5b19d1dd280f2ba4 Mon Sep 17 00:00:00 2001 From: Kennan Chan Date: Thu, 9 Oct 2025 10:16:46 +0000 Subject: [PATCH 04/11] update references --- Revit.Async.NET40/Revit.Async.NET40.csproj | 1 + Revit.Async/Revit.Async.csproj | 1 + 2 files changed, 2 insertions(+) diff --git a/Revit.Async.NET40/Revit.Async.NET40.csproj b/Revit.Async.NET40/Revit.Async.NET40.csproj index f1d987a..59b1926 100644 --- a/Revit.Async.NET40/Revit.Async.NET40.csproj +++ b/Revit.Async.NET40/Revit.Async.NET40.csproj @@ -114,6 +114,7 @@ False + diff --git a/Revit.Async/Revit.Async.csproj b/Revit.Async/Revit.Async.csproj index 1fa9bdc..aa1a5f2 100644 --- a/Revit.Async/Revit.Async.csproj +++ b/Revit.Async/Revit.Async.csproj @@ -109,6 +109,7 @@ + From 6ec30b41482a1338c56ef2f0b4b712d28297a2de Mon Sep 17 00:00:00 2001 From: Kennan Chan Date: Thu, 9 Oct 2025 10:32:20 +0000 Subject: [PATCH 05/11] restore packages --- .github/workflows/dotnet-desktop.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/dotnet-desktop.yml b/.github/workflows/dotnet-desktop.yml index 3345d1c..bbd268b 100644 --- a/.github/workflows/dotnet-desktop.yml +++ b/.github/workflows/dotnet-desktop.yml @@ -67,6 +67,8 @@ jobs: - name: Restore NuGet packages run: | nuget restore ${{ env.SOLUTION_FILE }} + nuget restore Revit.Async.NET40/Revit.Async.NET40.csproj + nuget restore Revit.Async.NET45/Revit.Async.NET45.csproj - name: Build .NET Framework 4.0 project run: | From 4b9dc32ead3c7e473e03c2ecbbe43d239244e1ed Mon Sep 17 00:00:00 2001 From: Kennan Chan Date: Thu, 9 Oct 2025 10:34:44 +0000 Subject: [PATCH 06/11] update restore --- .github/workflows/dotnet-desktop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dotnet-desktop.yml b/.github/workflows/dotnet-desktop.yml index bbd268b..cab40bf 100644 --- a/.github/workflows/dotnet-desktop.yml +++ b/.github/workflows/dotnet-desktop.yml @@ -68,7 +68,7 @@ jobs: run: | nuget restore ${{ env.SOLUTION_FILE }} nuget restore Revit.Async.NET40/Revit.Async.NET40.csproj - nuget restore Revit.Async.NET45/Revit.Async.NET45.csproj + nuget restore Revit.Async/Revit.Async.csproj - name: Build .NET Framework 4.0 project run: | From fb0a206d964338a52b8b09edf1be0d61c5fc97f0 Mon Sep 17 00:00:00 2001 From: Kennan Chan Date: Fri, 10 Oct 2025 06:12:46 +0000 Subject: [PATCH 07/11] add diagnostic --- .github/workflows/dotnet-desktop.yml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/.github/workflows/dotnet-desktop.yml b/.github/workflows/dotnet-desktop.yml index cab40bf..e6447b6 100644 --- a/.github/workflows/dotnet-desktop.yml +++ b/.github/workflows/dotnet-desktop.yml @@ -66,9 +66,22 @@ jobs: - name: Restore NuGet packages run: | - nuget restore ${{ env.SOLUTION_FILE }} - nuget restore Revit.Async.NET40/Revit.Async.NET40.csproj - nuget restore Revit.Async/Revit.Async.csproj + nuget restore ${{ env.SOLUTION_FILE }} -Verbosity detailed + + - name: Diagnostic - Check project structure + run: | + # 检查项目文件 + Get-ChildItem -Recurse -Filter *.csproj | ForEach-Object { + Write-Host "Project: $($_.Name)" + Get-Content $_.FullName | Select-String "PackageReference|Reference" + } + + - name: Diagnostic - Check NuGet packages + run: | + # 检查包恢复情况 + if (Test-Path "packages") { + Get-ChildItem -Recurse packages | ForEach-Object { Write-Host "Package: $($_.FullName)" } + } - name: Build .NET Framework 4.0 project run: | From c4226599fe335b4a642176061614ed7b55c9592a Mon Sep 17 00:00:00 2001 From: Kennan Chan Date: Fri, 10 Oct 2025 06:24:03 +0000 Subject: [PATCH 08/11] use legacy nuget --- .github/workflows/dotnet-desktop.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/dotnet-desktop.yml b/.github/workflows/dotnet-desktop.yml index e6447b6..e44809e 100644 --- a/.github/workflows/dotnet-desktop.yml +++ b/.github/workflows/dotnet-desktop.yml @@ -63,10 +63,14 @@ jobs: - name: Setup MSBuild uses: microsoft/setup-msbuild@v1.1 + + - name: Download NuGet.exe + run: | + Invoke-WebRequest -Uri "https://dist.nuget.org/win-x86-commandline/v6.6.1/nuget.exe" -OutFile "nuget.exe" - name: Restore NuGet packages run: | - nuget restore ${{ env.SOLUTION_FILE }} -Verbosity detailed + .\nuget restore ${{ env.SOLUTION_FILE }} -Verbosity detailed -PackagesDirectory packages - name: Diagnostic - Check project structure run: | From 8a69edbe4af6afc5af9f3e5950d0bf66429997ca Mon Sep 17 00:00:00 2001 From: Kennan Chan Date: Fri, 10 Oct 2025 07:11:41 +0000 Subject: [PATCH 09/11] update references --- Revit.Async.NET40/Revit.Async.NET40.csproj | 1 + Revit.Async/Revit.Async.csproj | 1 + 2 files changed, 2 insertions(+) diff --git a/Revit.Async.NET40/Revit.Async.NET40.csproj b/Revit.Async.NET40/Revit.Async.NET40.csproj index 59b1926..46b33f6 100644 --- a/Revit.Async.NET40/Revit.Async.NET40.csproj +++ b/Revit.Async.NET40/Revit.Async.NET40.csproj @@ -115,6 +115,7 @@ + diff --git a/Revit.Async/Revit.Async.csproj b/Revit.Async/Revit.Async.csproj index aa1a5f2..b4027af 100644 --- a/Revit.Async/Revit.Async.csproj +++ b/Revit.Async/Revit.Async.csproj @@ -110,6 +110,7 @@ + From ccb599e4c03b319380ef5a9cb5366424075dee9a Mon Sep 17 00:00:00 2001 From: Kennan Chan Date: Fri, 10 Oct 2025 07:21:26 +0000 Subject: [PATCH 10/11] add solution dir parameter --- .github/workflows/dotnet-desktop.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/dotnet-desktop.yml b/.github/workflows/dotnet-desktop.yml index e44809e..9ead052 100644 --- a/.github/workflows/dotnet-desktop.yml +++ b/.github/workflows/dotnet-desktop.yml @@ -89,15 +89,21 @@ jobs: - name: Build .NET Framework 4.0 project run: | - msbuild Revit.Async.NET40/Revit.Async.NET40.csproj /p:Configuration=Release /p:Platform="x64" /p:TargetFrameworkVersion=v4.0 + $solutionFile = ${{ env.SOLUTION_FILE }} + $solutionDir = [System.IO.Path]::GetDirectoryName((Get-Item $solutionFile).FullName) + msbuild Revit.Async.NET40/Revit.Async.NET40.csproj /p:Configuration=Release /p:Platform="x64" /p:TargetFrameworkVersion=v4.0 /p:SolutionDir="$solutionDir\" - name: Build .NET Framework 4.5 project run: | - msbuild Revit.Async/Revit.Async.csproj /p:Configuration=Release /p:Platform="x64" /p:TargetFrameworkVersion=v4.5 + $solutionFile = ${{ env.SOLUTION_FILE }} + $solutionDir = [System.IO.Path]::GetDirectoryName((Get-Item $solutionFile).FullName) + msbuild Revit.Async/Revit.Async.csproj /p:Configuration=Release /p:Platform="x64" /p:TargetFrameworkVersion=v4.5 /p:SolutionDir="$solutionDir\" - name: Build .NET Standard 2.1 project run: | - dotnet build Revit.Async.NET.Standard/Revit.Async.NET.Standard.csproj --configuration Release --framework netstandard2.1 + $solutionFile = ${{ env.SOLUTION_FILE }} + $solutionDir = [System.IO.Path]::GetDirectoryName((Get-Item $solutionFile).FullName) + dotnet build Revit.Async.NET.Standard/Revit.Async.NET.Standard.csproj --configuration Release --framework netstandard2.1 /p:SolutionDir="$solutionDir\" - name: Upload build artifacts uses: actions/upload-artifact@v4 From 33d894f4962e38394daf2505de7f486d20f63cc2 Mon Sep 17 00:00:00 2001 From: Kennan Chan Date: Fri, 10 Oct 2025 07:23:39 +0000 Subject: [PATCH 11/11] update actions --- .github/workflows/dotnet-desktop.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/dotnet-desktop.yml b/.github/workflows/dotnet-desktop.yml index 9ead052..a0adf91 100644 --- a/.github/workflows/dotnet-desktop.yml +++ b/.github/workflows/dotnet-desktop.yml @@ -89,19 +89,19 @@ jobs: - name: Build .NET Framework 4.0 project run: | - $solutionFile = ${{ env.SOLUTION_FILE }} + $solutionFile = "${{ env.SOLUTION_FILE }}" $solutionDir = [System.IO.Path]::GetDirectoryName((Get-Item $solutionFile).FullName) msbuild Revit.Async.NET40/Revit.Async.NET40.csproj /p:Configuration=Release /p:Platform="x64" /p:TargetFrameworkVersion=v4.0 /p:SolutionDir="$solutionDir\" - name: Build .NET Framework 4.5 project run: | - $solutionFile = ${{ env.SOLUTION_FILE }} + $solutionFile = "${{ env.SOLUTION_FILE }}" $solutionDir = [System.IO.Path]::GetDirectoryName((Get-Item $solutionFile).FullName) msbuild Revit.Async/Revit.Async.csproj /p:Configuration=Release /p:Platform="x64" /p:TargetFrameworkVersion=v4.5 /p:SolutionDir="$solutionDir\" - name: Build .NET Standard 2.1 project run: | - $solutionFile = ${{ env.SOLUTION_FILE }} + $solutionFile = "${{ env.SOLUTION_FILE }}" $solutionDir = [System.IO.Path]::GetDirectoryName((Get-Item $solutionFile).FullName) dotnet build Revit.Async.NET.Standard/Revit.Async.NET.Standard.csproj --configuration Release --framework netstandard2.1 /p:SolutionDir="$solutionDir\"