diff --git a/eng/Directory.Build.Common.targets b/eng/Directory.Build.Common.targets index 9cabecdd78e6..e4a7d33a848c 100644 --- a/eng/Directory.Build.Common.targets +++ b/eng/Directory.Build.Common.targets @@ -264,5 +264,23 @@ + + + false + true + + data + client + mgmt + + $([MSBuild]::NormalizeDirectory($(MSBuildProjectDirectory)/../).Trim("/").Trim("\\")) + + + + + + + + diff --git a/eng/scripts/Language-Settings.ps1 b/eng/scripts/Language-Settings.ps1 index a1f54e92853a..4eb0f2933807 100644 --- a/eng/scripts/Language-Settings.ps1 +++ b/eng/scripts/Language-Settings.ps1 @@ -6,46 +6,26 @@ $packagePattern = "*.nupkg" $MetadataUri = "https://raw.githubusercontent.com/Azure/azure-sdk/main/_data/releases/latest/dotnet-packages.csv" $BlobStorageUrl = "https://azuresdkdocs.blob.core.windows.net/%24web?restype=container&comp=list&prefix=dotnet%2F&delimiter=%2F" -function Get-dotnet-PackageInfoFromRepo ($pkgPath, $serviceDirectory) +function Get-AllPackageInfoFromRepo($serviceDirectory) { - $projDirPath = (Join-Path $pkgPath "src") + $allPackageProps = @() + $msbuildOutput = dotnet msbuild /nologo /t:GetPackageInfo $EngDir/service.proj /p:ServiceDirectory=$serviceDirectory - if (!(Test-Path $projDirPath)) + foreach ($projectOutput in $msbuildOutput) { - return $null - } - - $projectPaths = @(Resolve-Path (Join-Path $projDirPath "*.csproj")) + if (!$projectOutput) { continue } - if ($projectpaths.Count -ge 1) { - $projectPath = $projectPaths[0].path - if ($projectPaths.Count -gt 1) { - LogWarning "There is more than on csproj file in the projectpath/src directory. First project picked." - } - } - else { - return $null - } + $pkgPath, $serviceDirectory, $pkgName, $pkgVersion, $sdkType, $isNewSdk = $projectOutput.Split(' ',[System.StringSplitOptions]::RemoveEmptyEntries).Trim("'") - if ($projectPath -and (Test-Path $projectPath)) - { - $pkgName = Split-Path -Path $projectPath -LeafBase - $projectData = New-Object -TypeName XML - $projectData.load($projectPath) - $pkgVersion = Select-XML -Xml $projectData -XPath '/Project/PropertyGroup/Version' - $sdkType = "client" - if ($pkgName -match "\.ResourceManager\." -or $pkgName -match "\.Management\.") - { - $sdkType = "mgmt" - } $pkgProp = [PackageProps]::new($pkgName, $pkgVersion, $pkgPath, $serviceDirectory) $pkgProp.SdkType = $sdkType - $pkgProp.IsNewSdk = $pkgName.StartsWith("Azure") + $pkgProp.IsNewSdk = ($isNewSdk -eq 'true') $pkgProp.ArtifactName = $pkgName - return $pkgProp + + $allPackageProps += $pkgProp } - return $null + return $allPackageProps } # Returns the nuget publish status of a package id and version. diff --git a/eng/service.proj b/eng/service.proj index 3ea144801b6f..97c6c40cc3fb 100644 --- a/eng/service.proj +++ b/eng/service.proj @@ -63,4 +63,12 @@ + + + + \ No newline at end of file