navcontainerhelper icon indicating copy to clipboard operation
navcontainerhelper copied to clipboard

Compile-AppWithBcCompilerFolder fails when dependency does propagateDependencies

Open ChrisBlankDe opened this issue 9 months ago • 3 comments

Describe the issue We have two Apps, "App A" and "App B" App A has an dependency to Microsoft Data Seach and does propergate this. App B has an dependency to App A

When comiling App B we got an Error about missing Microsoft Data Seach App

Files to reproduce: AL-Go-Reproduction.zip

Scripts used to create container and cause the issue

$ArtifactUrl = Get-BCArtifactUrl
$CompilerFolder = New-BcCompilerFolder -artifactUrl $ArtifactUrl
Compile-AppWithBcCompilerFolder -appProjectFolder "C:\Git\AL-Go-Reproduction\App B" -compilerFolder $CompilerFolder

Full output of scripts

using 7zip
dotnet runtime version  is installed, but minimum required version is 6.0.16
Downloading minimum required dotnet version from https://download.visualstudio.microsoft.com/download/pr/ca13c6f1-3107-4cf8-991c-f70edc1c1139/a9f90579d827514af05c3463bed63c22/dotnet-sdk-6.0.408-win-x64.zip
Downloading C:\ProgramData\BcContainerHelper\compiler\bff38a19-5a4d-4796-a09a-6c3788fbb897\dotnet.zip
using 7zip
Using Symbols Folder: C:\Git\AL-Go-Reproduction\App B\.alpackages
Enumerating Apps in CompilerFolder C:\ProgramData\BcContainerHelper\compiler\bff38a19-5a4d-4796-a09a-6c3788fbb897\symbols
::group::Getting .app info C:\ProgramData\BcContainerHelper\compiler\bff38a19-5a4d-4796-a09a-6c3788fbb897\symbols\cache_AppInfo.json
- Microsoft_Any_24.0.16410.19540.app (succeeded using altool)
- Microsoft_API - Cross Environment Intercompany_24.0.16410.19540.app (succeeded using altool)
- Microsoft_API Reports - Finance_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Application_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Audit File Export_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Bank Account Reconciliation With AI_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Base Application_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Business Central Cloud Migration - Previous Release_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Business Central Cloud Migration API_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Business Central Intelligent Cloud_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Business Foundation_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Company Hub_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Contoso Coffee Demo Dataset_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Czech language (Czechia)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Danish language (Denmark)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Data Archive_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Data Search_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Dutch language (Belgium)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Dutch language (Netherlands)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Dynamics BC Excel Reports_24.0.16410.19540.app (succeeded using altool)
- Microsoft_E-Document Core Demo Data_24.0.16410.19540.app (succeeded using altool)
- Microsoft_E-Document Core_24.0.16410.19540.app (succeeded using altool)
- Microsoft_E-Documents Connector with External Endpoints_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Email - Current User Connector_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Email - Microsoft 365 Connector_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Email - Outlook REST API_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Email - SMTP API_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Email - SMTP Connector_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Enforced Digital Vouchers_24.0.16410.19540.app (succeeded using altool)
- Microsoft_English language (Australia)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_English language (Canada)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_English language (New Zealand)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_English language (United Kingdom)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_English language (United States)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Error Messages with Recommendations_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Essential Business Headlines_24.0.16410.19540.app (succeeded using altool)
- Microsoft_EU 3-Party Trade Purchase_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Finnish language (Finland)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_French language (Belgium)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_French language (Canada)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_French language (France)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_French language (Switzerland)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_German language (Austria)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_German language (Germany)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_German language (Switzerland)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Icelandic language (Iceland)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Intelligent Cloud Base_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Intrastat Core_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Italian language (Italy)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Italian language (Switzerland)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Late Payment Prediction_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Library Assert_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Library Variable Storage_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Microsoft Pay Payments_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Norwegian language (Norway)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Payment Links to PayPal_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Payment Practices_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Performance Toolkit Samples.app (succeeded using altool)
- Microsoft_Performance Toolkit Tests.app (succeeded using altool)
- Microsoft_Performance Toolkit_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Permissions Mock_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Recommended Apps_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Review General Ledger Entries_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Russian language (Russia)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_SAF-T_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Sales and Inventory Forecast_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Sales Lines Suggestions_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Send remittance advice by email_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Send To Email Printer_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Service Declaration_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Shopify Connector_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Simplified Bank Statement Import_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Spanish language (Mexico)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Spanish language (Spain)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Statistical Accounts_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Sustainability Contoso Coffee Demo Dataset_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Sustainability_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Swedish language (Sweden)_24.0.16410.19540.app (succeeded using altool)
- Microsoft_System Application Test Library.app (succeeded using altool)
- Microsoft_System Application_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Test Runner_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Tests-Bank.app (succeeded using altool)
- Microsoft_Tests-Cash Flow.app (succeeded using altool)
- Microsoft_Tests-Cost Accounting.app (succeeded using altool)
- Microsoft_Tests-CRM integration.app (succeeded using altool)
- Microsoft_Tests-Data Exchange.app (succeeded using altool)
- Microsoft_Tests-Dimension.app (succeeded using altool)
- Microsoft_Tests-ERM.app (succeeded using altool)
- Microsoft_Tests-Fixed Asset.app (succeeded using altool)
- Microsoft_Tests-General Journal.app (succeeded using altool)
- Microsoft_Tests-Graph.app (succeeded using altool)
- Microsoft_Tests-Integration.app (succeeded using altool)
- Microsoft_Tests-Invoicing.app (succeeded using altool)
- Microsoft_Tests-Job.app (succeeded using altool)
- Microsoft_Tests-Local.app (succeeded using altool)
- Microsoft_Tests-Marketing.app (succeeded using altool)
- Microsoft_Tests-Misc.app (succeeded using altool)
- Microsoft_Tests-Monitor Sensitive Fields.app (succeeded using altool)
- Microsoft_Tests-Permissions.app (succeeded using altool)
- Microsoft_Tests-Physical Inventory.app (succeeded using altool)
- Microsoft_Tests-Prepayment.app (succeeded using altool)
- Microsoft_Tests-Rapid Start.app (succeeded using altool)
- Microsoft_Tests-Report.app (succeeded using altool)
- Microsoft_Tests-Resource.app (succeeded using altool)
- Microsoft_Tests-Reverse.app (succeeded using altool)
- Microsoft_Tests-SCM.app (succeeded using altool)
- Microsoft_Tests-SINGLESERVER.app (succeeded using altool)
- Microsoft_Tests-SMB.app (succeeded using altool)
- Microsoft_Tests-TestLibraries.app (succeeded using altool)
- Microsoft_Tests-Upgrade.app (succeeded using altool)
- Microsoft_Tests-User.app (succeeded using altool)
- Microsoft_Tests-VAT.app (succeeded using altool)
- Microsoft_Tests-Workflow.app (succeeded using altool)
- Microsoft_Troubleshoot FA Ledger Entries_24.0.16410.19540.app (succeeded using altool)
- Microsoft_Universal Print Integration_24.0.16410.19540.app (succeeded using altool)
- Microsoft_VAT Group Management_24.0.16410.19540.app (succeeded using altool)
- Microsoft__Exclude_APIV1__24.0.16410.19540.app (succeeded using altool)
- Microsoft__Exclude_APIV2__24.0.16410.19540.app (succeeded using altool)
- Microsoft__Exclude_Bank Deposits_24.0.16410.19540.app (succeeded using altool)
- Microsoft__Exclude_Business_Events__24.0.16410.19540.app (succeeded using altool)
- Microsoft__Exclude_ClientAddIns__24.0.16410.19540.app (succeeded using altool)
- Microsoft__Exclude_Connectivity Apps_24.0.16410.19540.app (succeeded using altool)
- Microsoft__Exclude_Email Logging Using Graph API_24.0.16410.19540.app (succeeded using altool)
- Microsoft__Exclude_Master_Data_Management_24.0.16410.19540.app (succeeded using altool)
- Microsoft__Exclude_Microsoft Dynamics 365 - SmartList_24.0.16410.19540.app (succeeded using altool)
- Microsoft__Exclude_Onboarding Signals_24.0.16410.19540.app (succeeded using altool)
- Microsoft__Exclude_PlanConfiguration__24.0.16410.19540.app (succeeded using altool)
- Microsoft__Exclude_ReportLayouts_24.0.16410.19540.app (succeeded using altool)
- Microsoft__Exclude_SyncBaseApp__24.0.16410.19540.app (succeeded using altool)
- System.app (succeeded using altool)
::endgroup::
Enumerating Apps in Symbols Folder C:\Git\AL-Go-Reproduction\App B\.alpackages
::group::Getting .app info C:\Git\AL-Go-Reproduction\App B\.alpackages\cache_AppInfo.json
- ChrisBlankDe_App A_1.0.0.0.app (succeeded using altool)
::endgroup::
Processing dependency Microsoft_Application_22.0.0.0 ()
Dependency App not found
Copying C:\ProgramData\BcContainerHelper\compiler\bff38a19-5a4d-4796-a09a-6c3788fbb897\symbols\Microsoft_Application_24.0.16410.19540.app to C:\Git\AL-Go-Reproduction\App B\.alpackages
Adding dependency to System Application from Microsoft
Adding dependency to Business Foundation from Microsoft
Adding dependency to Base Application from Microsoft
Processing dependency Microsoft_System_1.0.0.0 ()
Dependency App not found
Copying C:\ProgramData\BcContainerHelper\compiler\bff38a19-5a4d-4796-a09a-6c3788fbb897\symbols\System.app to C:\Git\AL-Go-Reproduction\App B\.alpackages
Processing dependency ChrisBlankDe_App A_1.0.0.0 (d4c9ac08-a3b5-4beb-9e36-5287442064e1)
Dependency App exists
Processing dependency Microsoft_System Application_24.0.16410.19540 (63ca2fa4-4f03-4f2b-a480-172fef340d3f)
Dependency App not found
Copying C:\ProgramData\BcContainerHelper\compiler\bff38a19-5a4d-4796-a09a-6c3788fbb897\symbols\Microsoft_System Application_24.0.16410.19540.app to C:\Git\AL-Go-Reproduction\App B\.alpackages
Processing dependency Microsoft_Business Foundation_24.0.16410.19540 (f3552374-a1f2-4356-848e-196002525837)
Dependency App not found
Copying C:\ProgramData\BcContainerHelper\compiler\bff38a19-5a4d-4796-a09a-6c3788fbb897\symbols\Microsoft_Business Foundation_24.0.16410.19540.app to C:\Git\AL-Go-Reproduction\App B\.alpackages
Processing dependency Microsoft_Base Application_24.0.16410.19540 (437dbf0e-84ff-417a-965d-ed2bb9650972)
Dependency App not found
Copying C:\ProgramData\BcContainerHelper\compiler\bff38a19-5a4d-4796-a09a-6c3788fbb897\symbols\Microsoft_Base Application_24.0.16410.19540.app to C:\Git\AL-Go-Reproduction\App B\.alpackages
Platform version: 24.0.19514.0
Compiling...
.\alc.exe /project:"C:\Git\AL-Go-Reproduction\App B" /packagecachepath:"C:\Git\AL-Go-Reproduction\App B\.alpackages" /out:"C:\Git\AL-Go-Reproduction\App B\output\ChrisBlankDe_App B_1.0.0.0.app" /BuildBy:"BcContainerHelper,6.0.17" /assemblyprobingpaths:C:\Pro
gramData\BcContainerHelper\compiler\bff38a19-5a4d-4796-a09a-6c3788fbb897\dlls\OpenXML,C:\ProgramData\BcContainerHelper\compiler\bff38a19-5a4d-4796-a09a-6c3788fbb897\dlls\shared,C:\ProgramData\BcContainerHelper\compiler\bff38a19-5a4d-4796-a09a-6c3788fbb897\dl
ls\Service,C:\ProgramData\BcContainerHelper\compiler\bff38a19-5a4d-4796-a09a-6c3788fbb897\dlls\Mock Assemblies
App generation failed with exit code 1
Microsoft (R) AL Compiler version 13.0.15.19053
Copyright (C) Microsoft Corporation. All rights reserved

Compilation started for project 'App B' containing '1' files at '13:55:25.657'.

error AL1022: A package with publisher 'Microsoft', name 'Data Search', and a version compatible with '24.0.0.0' could not be found in the package cache folders: C:\Git\AL-Go-Reproduction\App B\.alpackages

Compilation ended at '13:55:27.601'.

Compile-AppWithBcCompilerFolder Telemetry Correlation Id: 51c7235e-2dae-46f8-9ef7-92097a82c8f1
App generation failed
In C:\Users\cblank\OneDrive - KUMAVISION AG\Dokumente\WindowsPowerShell\Modules\BcContainerHelper\6.0.17\CompilerFolderHandling\Compile-AppWithBcCompilerFolder.ps1:496 Zeichen:9
+         throw "App generation failed"
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (App generation failed:String) [], RuntimeException
    + FullyQualifiedErrorId : App generation failed
 

Additional context

  • does it happen all the time? yes.
  • did it use to work? no.

ChrisBlankDe avatar May 15 '24 11:05 ChrisBlankDe

Any chance you can provide me with a .zip file with a repro of this?

freddydk avatar May 17 '24 06:05 freddydk

You already did - will look at that,

freddydk avatar May 17 '24 06:05 freddydk

Created an AL-Go repo, added the two apps and set useCompilerFolder and doNotPublishApps to true. Works like a charm: https://github.com/freddydk/issue3538/actions/runs/9123828543/job/25086949097

When I compile App A - I use a common appSymbolsFolder (which I again use when compiling App B). This means that whatever apps where needed in App A will be there for App B as well. I cannot compile App B if you manually copy App A to .alpackages without also supplying dependencies.

freddydk avatar May 17 '24 06:05 freddydk

We have a similar issue now that an ISV added a dependency to the "Data Search" app and has set propagateDependencies to true. Now that our app has a dependency on their app, our pipeline fails with the below error when compiling: ##[error]A package with publisher 'Microsoft', name 'Data Search', and a version compatible with '23.0.0.0' could not be found in the package cache folders: C:\Agent\_work\4989\s\AppB\App\.alpackages

Eg. the same scenario as in this issue - but we do not compile App A ourselves, we got a Runtime Package. That means that the provided workaround does not help us here.

Any suggestions on how to workaround this?

jwikman avatar Oct 15 '24 19:10 jwikman

Btw, if I download symbols in VSCode, the symbols for the Data Search app are downloaded as expected, and my app compiles.

So, this seems to be isolated to BcContainerHelper. After digging around a bit, I cannot see that the propagateDependencies property is handled at all when downloading symbols, is that correct? If so, any plans to support this anytime soon? 🙂 I realize that this could involve quite some refactoring to implement recursively...

jwikman avatar Oct 15 '24 20:10 jwikman

Will investigate

freddydk avatar Oct 16 '24 04:10 freddydk

Have investigated:-) Will create a PR, which you can review and test

freddydk avatar Oct 16 '24 06:10 freddydk

I will ship 6.0.26 before merging this fix - then this will be in preview shortly after. Not that I think there are any problems with this fix - but it is a change in a very central location.

freddydk avatar Oct 16 '24 06:10 freddydk

Thanks Freddy, I'll try the change from your draft PR right away 🙂

jwikman avatar Oct 16 '24 06:10 jwikman

And I can confirm that the change solved this issue! Thanks again for fast action! 🙏

jwikman avatar Oct 16 '24 06:10 jwikman