diff --git a/packages/http-client-csharp/eng/scripts/RegenPreview.psm1 b/packages/http-client-csharp/eng/scripts/RegenPreview.psm1 index f7dba494aba..4f08d46666f 100644 --- a/packages/http-client-csharp/eng/scripts/RegenPreview.psm1 +++ b/packages/http-client-csharp/eng/scripts/RegenPreview.psm1 @@ -554,15 +554,24 @@ function Update-OpenAIGenerator { $packageJson | ConvertTo-Json -Depth 100 | Set-Content $codegenPackageJsonPath -Encoding UTF8 - # Delete package-lock.json to force regeneration with new dependencies + # Remove stale node_modules and package-lock.json to ensure clean dependency resolution + Write-Host "Removing stale node_modules and package-lock.json..." -ForegroundColor Gray + $rootNodeModules = Join-Path $OpenAIRepoPath "node_modules" + if (Test-Path $rootNodeModules) { + Remove-Item $rootNodeModules -Recurse -Force + } + $codegenNodeModules = Join-Path $OpenAIRepoPath "codegen" "node_modules" + if (Test-Path $codegenNodeModules) { + Remove-Item $codegenNodeModules -Recurse -Force + } $packageLockPath = Join-Path $OpenAIRepoPath "package-lock.json" if (Test-Path $packageLockPath) { Write-Host "Deleting package-lock.json..." -ForegroundColor Gray Remove-Item $packageLockPath -Force } - # Run npm install to regenerate package-lock.json with local dependencies - Write-Host "Installing dependencies in openai directory..." -ForegroundColor Gray + # Install dependencies + Write-Host "Installing dependencies..." -ForegroundColor Gray Push-Location $OpenAIRepoPath try { $npmOutput = Invoke "npm install" $OpenAIRepoPath @@ -576,25 +585,23 @@ function Update-OpenAIGenerator { Pop-Location } - # Update OpenAI.Library.Plugin.csproj - $pluginCsprojPath = Join-Path $OpenAIRepoPath "codegen" "generator" "src" "OpenAI.Library.Plugin.csproj" - if (-not (Test-Path $pluginCsprojPath)) { - throw "OpenAI.Library.Plugin.csproj not found: $pluginCsprojPath" + # Update Directory.Packages.props + $directoryPackagesPropsPath = Join-Path $OpenAIRepoPath "Directory.Packages.props" + if (-not (Test-Path $directoryPackagesPropsPath)) { + throw "Directory.Packages.props not found: $directoryPackagesPropsPath" } - Write-Host "Updating OpenAI.Library.Plugin.csproj..." -ForegroundColor Gray - [xml]$csproj = Get-Content $pluginCsprojPath - - $packageReference = $csproj.Project.ItemGroup.PackageReference | - Where-Object { $_.Include -eq "Microsoft.TypeSpec.Generator.ClientModel" } | - Select-Object -First 1 + Write-Host "Updating Directory.Packages.props..." -ForegroundColor Gray + $propsContent = Get-Content $directoryPackagesPropsPath -Raw + $pattern = '(