Skip to content

Commit 43027b9

Browse files
authored
Bugfix (#3295)
Move json conversion as not all altool commands return json --------- Co-authored-by: freddydk <[email protected]>
1 parent d5dad93 commit 43027b9

4 files changed

+22
-7
lines changed

AppHandling/Get-AppJsonFromAppFile.ps1

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ function Get-AppJsonFromAppFile {
1212
[Parameter(Mandatory=$true)]
1313
[string] $appFile
1414
)
15-
$appJson = RunAlTool -arguments @('GetPackageManifest', """$appFile""")
15+
$appJson = RunAlTool -arguments @('GetPackageManifest', """$appFile""") | ConvertFrom-Json
1616
if (!($appJson.PSObject.Properties.Name -eq "description")) { Add-Member -InputObject $appJson -MemberType NoteProperty -Name "description" -Value "" }
1717
if (!($appJson.PSObject.Properties.Name -eq "dependencies")) { Add-Member -InputObject $appJson -MemberType NoteProperty -Name "dependencies" -Value @() }
1818
return $appJson

HelperFunctions.ps1

+1-1
Original file line numberDiff line numberDiff line change
@@ -1342,7 +1342,7 @@ function RunAlTool {
13421342
else {
13431343
$alToolExe = Join-Path $path 'extension/bin/win32/altool.exe'
13441344
}
1345-
return CmdDo -Command $alToolExe -arguments $arguments -returnValue -silent | ConvertFrom-Json
1345+
CmdDo -Command $alToolExe -arguments $arguments -returnValue -silent
13461346
}
13471347

13481348
function GetApplicationDependency( [string] $appFile, [string] $minVersion = "0.0" ) {

NuGet/New-BcNuGetPackage.ps1

+19-3
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,22 @@ Function New-BcNuGetPackage {
8181
$stream.Write($bytes,0,$bytes.Length)
8282
}
8383

84+
function CalcPackageId([string] $packageIdTemplate, [string] $publisher, [string] $name, [string] $id, [string] $version) {
85+
$name = [nuGetFeed]::Normalize($name)
86+
$publisher = [nuGetFeed]::Normalize($publisher)
87+
$packageId = $packageIdTemplate.replace('{id}',$id).replace('{name}',$name).replace('{publisher}',$publisher).replace('{version}',$version)
88+
if ($packageId.Length -ge 100) {
89+
if ($name.Length -gt ($packageId.Length - 99)) {
90+
$name = $name.Substring(0, $name.Length - ($packageId.Length - 99))
91+
}
92+
else {
93+
throw "Package id is too long: $packageId, unable to shorten it"
94+
}
95+
$packageId = $packageIdTemplate.replace('{id}',$id).replace('{name}',$name).replace('{publisher}',$publisher).replace('{version}',$version)
96+
}
97+
return $packageId
98+
}
99+
84100
Write-Host "Create NuGet package"
85101
Write-Host "AppFile:"
86102
Write-Host $appFile
@@ -118,7 +134,7 @@ Function New-BcNuGetPackage {
118134
}
119135
}
120136
$appJson = Get-AppJsonFromAppFile -appFile $appFile
121-
$packageId = $packageId.replace('{id}',$appJson.id).replace('{name}',[nuGetFeed]::Normalize($appJson.name)).replace('{publisher}',[nuGetFeed]::Normalize($appJson.publisher)).replace('{version}',$appJson.version.replace('.','-'))
137+
$packageId = CalcPackageId -packageIdTemplate $packageId -publisher $appJson.publisher -name $appJson.name -id $appJson.id -version $appJson.version.replace('.','-')
122138
if ($null -eq $packageVersion) {
123139
$packageVersion = [System.Version]$appJson.version
124140
}
@@ -174,7 +190,7 @@ Function New-BcNuGetPackage {
174190
$XmlObjectWriter.WriteStartElement("dependencies")
175191
if ($appJson.PSObject.Properties.Name -eq 'dependencies') {
176192
$appJson.dependencies | ForEach-Object {
177-
$id = $dependencyIdTemplate.replace('{id}',$_.id).replace('{name}',[nuGetFeed]::Normalize($_.name)).replace('{publisher}',[nuGetFeed]::Normalize($_.publisher))
193+
$id = CalcPackageId -packageIdTemplate $dependencyIdTemplate -publisher $_.publisher -name $_.name -id $_.id -version $_.version.replace('.','-')
178194
$XmlObjectWriter.WriteStartElement("dependency")
179195
$XmlObjectWriter.WriteAttributeString("id", $id)
180196
$XmlObjectWriter.WriteAttributeString("version", $_.Version)
@@ -195,7 +211,7 @@ Function New-BcNuGetPackage {
195211
}
196212
if ($isIndirectPackage.IsPresent) {
197213
$XmlObjectWriter.WriteStartElement("dependency")
198-
$id = $runtimeDependencyId.replace('{id}',$appJson.id).replace('{name}',[nuGetFeed]::Normalize($appJson.name)).replace('{publisher}',[nuGetFeed]::Normalize($appJson.publisher)).replace('{version}',$appJson.version.replace('.','-'))
214+
$id = CalcPackageId -packageIdTemplate $runtimeDependencyId -publisher $appJson.publisher -name $appJson.name -id $appJson.id -version $appJson.version.replace('.','-')
199215
$XmlObjectWriter.WriteAttributeString("id", $id)
200216
$XmlObjectWriter.WriteAttributeString("version", '1.0.0.0')
201217
$XmlObjectWriter.WriteEndElement()

NuGet/Publish-BcNuGetPackageToContainer.ps1

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
Publish Business Central NuGet Package to container
66
.PARAMETER nuGetServerUrl
77
NuGet Server URL
8-
Default: https://api.nuget.org/v3/index.json
98
.PARAMETER nuGetToken
109
NuGet Token for authenticated access to the NuGet Server
1110
If not specified, the NuGet Server is accessed anonymously (and needs to support this)
@@ -42,7 +41,7 @@
4241
Function Publish-BcNuGetPackageToContainer {
4342
Param(
4443
[Parameter(Mandatory=$false)]
45-
[string] $nuGetServerUrl = "https://api.nuget.org/v3/index.json",
44+
[string] $nuGetServerUrl = "",
4645
[Parameter(Mandatory=$false)]
4746
[string] $nuGetToken = "",
4847
[Parameter(Mandatory=$true)]

0 commit comments

Comments
 (0)