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