microsoft / BCApps

Repository for collaboration on Microsoft Dynamics 365 Business Central applications.
https://microsoft.github.io/BCApps/
MIT License
328 stars 172 forks source link

[Bug]: ABS Operation fails when blob contains # in file name #1088

Closed ptrk-tr closed 5 months ago

ptrk-tr commented 6 months ago

Describe the issue

I'll describe this issue based on the GetBlobAsStream procedure of the ABS Blob Client Codeunit as I haven't tested with other operations yet.

The blob name isn't escaped in the operation so the response returns a 404. In case the ABS Operation Response return parameter isn't used and instead only the InStream is used further in the code, the InStream contains 215 Bytes of data.

GetBlobAsStream calls the SetBlobName(BlobName) procedure of the "ABS Operation Payload" codeunit which in turn just assigns the parameter to its global variable "BlobName". In the procedure PrepareRequestMsg of the "ABS Web Request Helper" Codeunit the Request Uri is set via the ConstructUri procedure of the "ABS Operation Payload" Codeunit, which calls the ConstructUri procedure in the "ABS URI Helper" Codeunit.

ConstructUri in the URI Helper codeunit calls a procedure called "AppendBlobIfNecessary" that does.. just that:

if not ConstructedUrl.EndsWith('/') then
            ConstructedUrl += '/';
        ConstructedUrl += BlobName;

If the file name of the blob contains a # this won't get escaped which leads to the HttpClient.Send() request not finding the specified blob. I assume in itself not escaping the # is correct, as it's used to jump to anchor points in a website, but I don't see those being applicable in a storage container.

I could provide a fix for this, as the easiest solution in my opinion would be to either call EscapeDataString() from the Uri Codeunit when SetBlobName() is called, or when the Blob name is appended in AppendBlobIfNecessary. This also doesn't hurt when other special characters are present in the file name (tested with !$# characters, when escaping them, the blob is still found, to be tested if that works with other operation types as well).

Appreciate any opinions on how to best fix this.

Expected behavior

The # in the blob name gets escaped properly when the request uri is constructed.

Steps to reproduce

code snippet to reproduce:

action(ABSOperation)
{
    Caption = 'ABS Operation';
    ToolTip = 'Tries to get a blob with the special character # in the file name from Azure Blob Storage.';
    ApplicationArea = All;
    Image = TestFile;
    trigger OnAction()
    var
        ABSClient: Codeunit "ABS Blob Client";
        ABSStorageAuth: Codeunit "Storage Service Authorization";
        ABSOperationResponse: Codeunit "ABS Operation Response";
        IABSServiceAuth: Interface "Storage Service Authorization";
        InStr: InStream;
    begin
        IABSServiceAuth := ABSStorageAuth.CreateSharedKey('<insertSharedKey>');
        ABSClient.Initialize('<insertStorageAccountName>', '<insertContainerName>', IABSServiceAuth);
        ABSOperationResponse := ABSClient.GetBlobAsStream('<insertFile#Name.pdf>', InStr);
        if not ABSOperationResponse.IsSuccessful() then
            Message(ABSOperationResponse.GetError());
    end;
}

Additional context

No response

I will provide a fix for a bug

JesperSchulz commented 6 months ago

Please go ahead and create a PR 🙂

ptrk-tr commented 6 months ago

Please go ahead and create a PR 🙂

@JesperSchulz As this is my first time working with the System Application (or any Microsoft First Party module) I went ahead and followed the steps from LOCAL_DEV_ENV.md to set up my local development environment, now I wanted to compile and publish my change to the docker container for testing before I create the PR but VS Code keeps throwing DotNet errors my way: grafik

I've set up my AssemblyProbingPaths as described in this documentation article: Get the repository on your local machine

grafik

Any idea on what am I missing here, or any resource you can point me to, so I can set this up properly?

Thanks a bunch!

JesperSchulz commented 6 months ago

Hmm... the assemblyProbingPaths I add usually look more like this: image Where "bcserver" is the name of my docker image. Could you give that a shot? Else, I'll include our Docker experts 🙂

ptrk-tr commented 6 months ago

Good shout, that reduced the errors down to 10 😄.

grafik

Looking at my local repository, I don't see any .netpackages folders in any of the submodules of the System Application, do you have those and if so, what .dlls are in there?

Also, I'm opening the project via the SystemApplication.code-workspace file in /BCApps/src/ I hope that's the way to do it?

JesperSchulz commented 6 months ago

@aholstrup1 / @mazhelez, could you help here? Following LOCAL_DEV_ENV should really simply give you a working environment - but that currently doesn't seem to happen currently. Can you tell what is wrong?

mazhelez commented 6 months ago

We'll have to take a deeper look at what is going south in this case.

@ptrk-tr can you share a more thorough log?

ptrk-tr commented 6 months ago

@mazhelez sure, created a fresh container for this, pasting the creation log and the BcContainerDebugInfo + my VS Code settings, tell me if there's anything else you need and where I can find it.

Container creation:

PS D:\GitProjekte\BCApps> .\build\scripts\DevEnv\NewDevEnv.ps1 -containerName 'BC-SystemApp' -userName admin -password 'passw0rd' -projectPaths '.\src\System Application\*'
Creating container BC-SystemApp from artifact URL https://bcinsider-fvh2ekdjecfjd6gk.b02.azurefd.net/sandbox/25.0.19335.0/base in the background. Job ID: 5
Resolved project paths: D:\GitProjekte\BCApps\src\System Application\App
D:\GitProjekte\BCApps\src\System Application\Test
D:\GitProjekte\BCApps\src\System Application\Test Library
Building apps...
Building app in D:\GitProjekte\BCApps\src\System Application\App
App Microsoft_System Application_25.0.0.0.app already exists in D:\GitProjekte\BCApps\.artifactsCache. Skipping...
Building app in D:\GitProjekte\BCApps\src\System Application\Test
Building dependency: 63ca2fa4-4f03-4f2b-a480-172fef340d3f
App Microsoft_System Application_25.0.0.0.app already exists in D:\GitProjekte\BCApps\.artifactsCache. Skipping...
Building dependency: 9856ae4f-d1a7-46ef-89bb-6ef056398228
Building dependency: 63ca2fa4-4f03-4f2b-a480-172fef340d3f
App Microsoft_System Application_25.0.0.0.app already exists in D:\GitProjekte\BCApps\.artifactsCache. Skipping...
Building dependency: e7320ebb-08b3-4406-b1ec-b4927d3e280b
App Microsoft_Any_25.0.0.0.app already exists in D:\GitProjekte\BCApps\.artifactsCache. Skipping...
App Microsoft_System Application Test Library_25.0.0.0.app already exists in D:\GitProjekte\BCApps\.artifactsCache. Skipping...
Building dependency: dd0be2ea-f733-4d65-bb34-a28f4624fb14
App Microsoft_Library Assert_25.0.0.0.app already exists in D:\GitProjekte\BCApps\.artifactsCache. Skipping...
Building dependency: e7320ebb-08b3-4406-b1ec-b4927d3e280b
App Microsoft_Any_25.0.0.0.app already exists in D:\GitProjekte\BCApps\.artifactsCache. Skipping...
Building dependency: 5095f467-0a01-4b99-99d1-9ff1237d286f
Building dependency: dd0be2ea-f733-4d65-bb34-a28f4624fb14
App Microsoft_Library Assert_25.0.0.0.app already exists in D:\GitProjekte\BCApps\.artifactsCache. Skipping...
App Microsoft_Library Variable Storage_25.0.0.0.app already exists in D:\GitProjekte\BCApps\.artifactsCache. Skipping...
Building dependency: 40860557-a18d-42ad-aecb-22b7dd80dc80
App Microsoft_Permissions Mock_25.0.0.0.app already exists in D:\GitProjekte\BCApps\.artifactsCache. Skipping...
App Microsoft_System Application Test_25.0.0.0.app already exists in D:\GitProjekte\BCApps\.artifactsCache. Skipping...
Building app in D:\GitProjekte\BCApps\src\System Application\Test Library
Building dependency: 63ca2fa4-4f03-4f2b-a480-172fef340d3f
App Microsoft_System Application_25.0.0.0.app already exists in D:\GitProjekte\BCApps\.artifactsCache. Skipping...
Building dependency: e7320ebb-08b3-4406-b1ec-b4927d3e280b
App Microsoft_Any_25.0.0.0.app already exists in D:\GitProjekte\BCApps\.artifactsCache. Skipping...
App Microsoft_System Application Test Library_25.0.0.0.app already exists in D:\GitProjekte\BCApps\.artifactsCache. Skipping...
Building apps took 0.1299566 seconds
App files: D:\GitProjekte\BCApps\.artifactsCache\Microsoft_System Application_25.0.0.0.app
D:\GitProjekte\BCApps\.artifactsCache\Microsoft_Any_25.0.0.0.app
D:\GitProjekte\BCApps\.artifactsCache\Microsoft_System Application Test Library_25.0.0.0.app
D:\GitProjekte\BCApps\.artifactsCache\Microsoft_Library Assert_25.0.0.0.app
D:\GitProjekte\BCApps\.artifactsCache\Microsoft_Library Variable Storage_25.0.0.0.app
D:\GitProjekte\BCApps\.artifactsCache\Microsoft_Permissions Mock_25.0.0.0.app
D:\GitProjekte\BCApps\.artifactsCache\Microsoft_System Application Test_25.0.0.0.app
Waiting for container creation to finish...
BcContainerHelper version 6.0.17
Ignoring unchanged config setting useVolumeForMyFolder
Ignoring unchanged config setting PartnerTelemetryConnectionString
Ignoring unchanged config setting MicrosoftTelemetryConnectionString
Ignoring unchanged config setting defaultContainerName
Setting TraefikImage = traefik:v1.7-windowsservercore-1809
Ignoring unchanged config setting DOCKER_SCAN_SUGGEST
Ignoring unchanged config setting usePsSession
Setting bcartifactsCacheFolder = D:\BC Versions\Artifacts
Setting hostHelperFolder = D:\BcContainerHelper
Ignoring unchanged config setting apiBaseUrl
Setting TreatWarningsAsErrors = AL1026
Ignoring unchanged config setting defaultNewContainerParameters
Ignoring unchanged config setting containerHelperFolder
Setting genericImageNameFilesOnly = mcr.microsoft.com/businesscentral:{0}-filesonly
Ignoring config setting ObjectIdForInternalUse as the type in the config file is different than in the default configuration
Ignoring unchanged config setting timeStampServer
Setting genericImageName = mcr.microsoft.com/businesscentral:{0}
Ignoring unchanged config setting digestAlgorithm
Ignoring unchanged config setting sandboxContainersAreMultitenantByDefault
Ignoring unchanged config setting baseUrl
Setting mapCountryCode = @{ae=w1; ar=w1; bd=w1; dz=w1; cl=w1; pr=w1; eg=w1; fo=dk; gl=dk; id=w1; ke=w1; lb=w1; lk=w1; lu=w1; ma=w1; mm=w1; mt=w1; my=w1; ng=w1; qa=w1; sa=w1; sg=w1; tn=w1; ua=w1; za=w1}
Ignoring unchanged config setting useSharedEncryptionKeys
Ignoring unchanged config setting TraefikUseDnsNameAsHostName
Ignoring unchanged config setting psSessionTimeout
Ignoring unchanged config setting SendExtendedTelemetryToMicrosoft
Ignoring unchanged config setting use7zipIfAvailable
WinRM service is not running, will not try to use WinRM sessions
BC.HelperFunctions emits usage statistics telemetry to Microsoft
Running on Windows, PowerShell 7.4.2
BcContainerHelper is version 6.0.17
BcContainerHelper is running as administrator
HyperV is Enabled
Host is Microsoft Windows 11 Enterprise - 10.0.22631.3593
UsePsSession is True
UsePwshForBc24 is True
UseWinRmSession is never
UseSslForWinRmSession is True
Docker Client Version is 20.10.13
Docker Server Version is 20.10.13
Removing Desktop shortcuts
Fetching all docker images
Fetching all docker volumes
Using image mcr.microsoft.com/businesscentral:ltsc2022
Creating Container BC-SystemApp
Style: onprem
Multitenant: No
Version: 25.0.19335.0
Platform: 25.0.19281.0
Generic Tag: 1.0.2.20
Container OS Version: 10.0.20348.2402 (ltsc2022)
Host OS Version: 10.0.22631.3593 (23H2)
WARNING: Container and host OS build is 20348 or above, defaulting to process isolation. If you encounter issues, you could try to install HyperV.
Using process isolation
Using locale en-US
Disabling the standard eventlog dump to container log every 2 seconds (use -dumpEventLog to enable)
Additional Parameters:
--volume "D:/GitProjekte/BCApps:c:\sources"
Files in D:\BcContainerHelper\Extensions\BC-SystemApp\my:
- AdditionalOutput.ps1
- HelperFunctions.ps1
- MainLoop.ps1
- SetupVariables.ps1
- updatecontainerhosts.ps1
Creating container BC-SystemApp from image mcr.microsoft.com/businesscentral:ltsc2022
7f962b10cfe6ed167bea9c105a42fd5de1309283a2754210d6b9cf6154aafd56
Waiting for container BC-SystemApp to be ready
Using artifactUrl https://bcinsider-fvh2ekdjecfjd6gk.b02.azurefd.net/sandbox/25.0.19335.0/base
Using installer from C:\Run\240
Installing Business Central: multitenant=False, installOnly=False, filesOnly=False, includeTestToolkit=False, includeTestLibrariesOnly=False, includeTestFrameworkOnly=False, includePerformanceToolkit=False, appArtifactPath=c:\dl\sandbox\25.0.19335.0\base, platformArtifactPath=c:\dl\sandbox\25.0.19335.0\platform, databasePath=c:\dl\sandbox\25.0.19335.0\base\Demo Database BC (25-0).bak, licenseFilePath=c:\dl\sandbox\25.0.19335.0\base\Cronus.bclicense, rebootContainer=True
Installing from artifacts
Starting Local SQL Server
Starting Internet Information Server
Copying Service Tier Files
c:\dl\sandbox\25.0.19335.0\platform\ServiceTier\Program Files
c:\dl\sandbox\25.0.19335.0\platform\ServiceTier\System64Folder
Copying Web Client Files
c:\dl\sandbox\25.0.19335.0\platform\WebClient\Microsoft Dynamics NAV
Copying ModernDev Files
c:\dl\sandbox\25.0.19335.0\platform
c:\dl\sandbox\25.0.19335.0\platform\ModernDev\program files\Microsoft Dynamics NAV
Copying additional files
Copying ConfigurationPackages
C:\dl\sandbox\25.0.19335.0\platform\ConfigurationPackages
Copying Test Assemblies
C:\dl\sandbox\25.0.19335.0\platform\Test Assemblies
Copying Applications
C:\dl\sandbox\25.0.19335.0\platform\Applications
Copying dependencies
Importing PowerShell Modules
Restoring CRONUS Demo Database
Setting CompatibilityLevel for CRONUS on localhost\SQLEXPRESS
Modifying Business Central Service Tier Config File for Docker
Creating Business Central Service Tier
Installing SIP crypto provider: 'C:\Windows\System32\NavSip.dll'
Starting Business Central Service Tier
Importing license file
Stopping Business Central Service Tier
Installation took 226 seconds
Installation complete
Initializing...
Setting host.containerhelper.internal to 172.25.48.1 in container hosts file
Starting Container
Hostname is BC-SystemApp
PublicDnsName is BC-SystemApp
WARNING: DNS resolution not working from within the container.
Using NavUserPassword Authentication
Creating Self Signed Certificate
Self Signed Certificate Thumbprint 511E0A3F8B1CC35585000BFCC5844A094A553522
DNS identity BC-SystemApp
Modifying Service Tier Config File with Instance Specific Settings
Starting Service Tier
Registering event sources
Creating DotNetCore Web Server Instance
Using application pool name: BC
Using default container name: NavWebApplicationContainer
Copy files to WWW root C:\inetpub\wwwroot\BC
Create the application pool BC
Create website: NavWebApplicationContainer without SSL
Update configuration: navsettings.json
Done Configuring Web Client
Creating http download site
Setting SA Password and enabling SA
Creating admin as SQL User and add to sysadmin
Creating SUPER user
WARNING: The password that you entered does not meet the minimum requirements.
It should be at least 8 characters long and contain at least one uppercase
letter, one lowercase letter, and one number.
Container IP Address: 172.25.49.4
Container Hostname  : BC-SystemApp
Container Dns Name  : BC-SystemApp
Web Client          : http://BC-SystemApp/BC/
Dev. Server         : http://BC-SystemApp
Dev. ServerInstance : BC

Files:
http://BC-SystemApp:8080/ALLanguage.vsix

Container Total Physical Memory is 31.8Gb
Container Free Physical Memory is 11.4Gb

Initialization took 118 seconds
Ready for connections!
Reading CustomSettings.config from BC-SystemApp
Cleanup old dotnet core assemblies
Creating .net Assembly Reference Folder
Copying DLLs from C:\Program Files\dotnet\Shared to assemblyProbingPath
Copying DLLs from C:\Program Files\Microsoft Dynamics NAV\250\Service to assemblyProbingPath
Copying DLLs from C:\Test Assemblies\Mock Assemblies to assemblyProbingPath
Removing dotnet Framework Assemblies
Container BC-SystemApp successfully created

Use:
Get-BcContainerEventLog -containerName BC-SystemApp to retrieve a snapshot of the event log from the container
Get-BcContainerDebugInfo -containerName BC-SystemApp to get debug information about the container
Enter-BcContainer -containerName BC-SystemApp to open a PowerShell prompt inside the container
Remove-BcContainer -containerName BC-SystemApp to remove the container again
docker logs BC-SystemApp to retrieve information about URL's again
Removing Simplified Bank Statement Import
Uninstalling Simplified Bank Statement Import from tenant default
Cleaning Schema from Simplified Bank Statement Import on default
Unpublishing Simplified Bank Statement Import
App successfully unpublished
Removing Shopify Connector
Uninstalling Shopify Connector from tenant default
Cleaning Schema from Shopify Connector on default
Unpublishing Shopify Connector
App successfully unpublished
Removing API Reports - Finance
Uninstalling API Reports - Finance from tenant default
Cleaning Schema from API Reports - Finance on default
Unpublishing API Reports - Finance
App successfully unpublished
Removing Recommended Apps
Uninstalling Recommended Apps from tenant default
Cleaning Schema from Recommended Apps on default
Unpublishing Recommended Apps
App successfully unpublished
Removing Data Search
Uninstalling Data Search from tenant default
Cleaning Schema from Data Search on default
Unpublishing Data Search
App successfully unpublished
Removing _Exclude_APIV1_
Uninstalling _Exclude_APIV1_ from tenant default
Cleaning Schema from _Exclude_APIV1_ on default
Unpublishing _Exclude_APIV1_
App successfully unpublished
Removing Bank Account Reconciliation With AI
Uninstalling Bank Account Reconciliation With AI from tenant default
Cleaning Schema from Bank Account Reconciliation With AI on default
Unpublishing Bank Account Reconciliation With AI
App successfully unpublished
Removing Service Declaration
Uninstalling Service Declaration from tenant default
Cleaning Schema from Service Declaration on default
Unpublishing Service Declaration
App successfully unpublished
Removing E-Documents Connector with External Endpoints
Uninstalling E-Documents Connector with External Endpoints from tenant default
Cleaning Schema from E-Documents Connector with External Endpoints on default
Unpublishing E-Documents Connector with External Endpoints
App successfully unpublished
Removing Send remittance advice by email
Uninstalling Send remittance advice by email from tenant default
Cleaning Schema from Send remittance advice by email on default
Unpublishing Send remittance advice by email
App successfully unpublished
Removing OnPrem Permissions
Uninstalling OnPrem Permissions from tenant default
Cleaning Schema from OnPrem Permissions on default
Unpublishing OnPrem Permissions
App successfully unpublished
Removing Essential Business Headlines
Uninstalling Essential Business Headlines from tenant default
Cleaning Schema from Essential Business Headlines on default
Unpublishing Essential Business Headlines
App successfully unpublished
Removing EU 3-Party Trade Purchase
Uninstalling EU 3-Party Trade Purchase from tenant default
Cleaning Schema from EU 3-Party Trade Purchase on default
Unpublishing EU 3-Party Trade Purchase
App successfully unpublished
Removing _Exclude_Bank Deposits
Uninstalling _Exclude_Bank Deposits from tenant default
Cleaning Schema from _Exclude_Bank Deposits on default
Unpublishing _Exclude_Bank Deposits
App successfully unpublished
Removing Sustainability Contoso Coffee Demo Dataset
Uninstalling Sustainability Contoso Coffee Demo Dataset from tenant default
Cleaning Schema from Sustainability Contoso Coffee Demo Dataset on default
Unpublishing Sustainability Contoso Coffee Demo Dataset
App successfully unpublished
Removing Error Messages with Recommendations
Uninstalling Error Messages with Recommendations from tenant default
Cleaning Schema from Error Messages with Recommendations on default
Unpublishing Error Messages with Recommendations
App successfully unpublished
Removing Email - Current User Connector
Uninstalling Email - Current User Connector from tenant default
Cleaning Schema from Email - Current User Connector on default
Unpublishing Email - Current User Connector
App successfully unpublished
Removing Statistical Accounts
Uninstalling Statistical Accounts from tenant default
Cleaning Schema from Statistical Accounts on default
Unpublishing Statistical Accounts
App successfully unpublished
Removing SAF-T
Uninstalling SAF-T from tenant default
Cleaning Schema from SAF-T on default
Unpublishing SAF-T
App successfully unpublished
Removing Audit File Export
Uninstalling Audit File Export from tenant default
Cleaning Schema from Audit File Export on default
Unpublishing Audit File Export
App successfully unpublished
Removing _Exclude_Email Logging Using Graph API
Uninstalling _Exclude_Email Logging Using Graph API from tenant default
Cleaning Schema from _Exclude_Email Logging Using Graph API on default
Unpublishing _Exclude_Email Logging Using Graph API
App successfully unpublished
Removing Review General Ledger Entries
Uninstalling Review General Ledger Entries from tenant default
Cleaning Schema from Review General Ledger Entries on default
Unpublishing Review General Ledger Entries
App successfully unpublished
Removing Late Payment Prediction
Uninstalling Late Payment Prediction from tenant default
Cleaning Schema from Late Payment Prediction on default
Unpublishing Late Payment Prediction
App successfully unpublished
Removing Data Archive
Uninstalling Data Archive from tenant default
Cleaning Schema from Data Archive on default
Unpublishing Data Archive
App successfully unpublished
Removing Dynamics BC Excel Reports
Uninstalling Dynamics BC Excel Reports from tenant default
Cleaning Schema from Dynamics BC Excel Reports on default
Unpublishing Dynamics BC Excel Reports
App successfully unpublished
Removing Performance Toolkit
Uninstalling Performance Toolkit from tenant default
Cleaning Schema from Performance Toolkit on default
Unpublishing Performance Toolkit
App successfully unpublished
Removing Payment Links to PayPal
Uninstalling Payment Links to PayPal from tenant default
Cleaning Schema from Payment Links to PayPal on default
Unpublishing Payment Links to PayPal
App successfully unpublished
Removing _Exclude_APIV2_
Uninstalling _Exclude_APIV2_ from tenant default
Cleaning Schema from _Exclude_APIV2_ on default
Unpublishing _Exclude_APIV2_
App successfully unpublished
Removing Universal Print Integration
Uninstalling Universal Print Integration from tenant default
Cleaning Schema from Universal Print Integration on default
Unpublishing Universal Print Integration
App successfully unpublished
Removing Email - Microsoft 365 Connector
Uninstalling Email - Microsoft 365 Connector from tenant default
Cleaning Schema from Email - Microsoft 365 Connector on default
Unpublishing Email - Microsoft 365 Connector
App successfully unpublished
Removing Email - Outlook REST API
Uninstalling Email - Outlook REST API from tenant default
Cleaning Schema from Email - Outlook REST API on default
Unpublishing Email - Outlook REST API
App successfully unpublished
Removing Sales Lines Suggestions
Uninstalling Sales Lines Suggestions from tenant default
Cleaning Schema from Sales Lines Suggestions on default
Unpublishing Sales Lines Suggestions
App successfully unpublished
Removing Enforced Digital Vouchers
Uninstalling Enforced Digital Vouchers from tenant default
Cleaning Schema from Enforced Digital Vouchers on default
Unpublishing Enforced Digital Vouchers
App successfully unpublished
Removing VAT Group Management
Uninstalling VAT Group Management from tenant default
Cleaning Schema from VAT Group Management on default
Unpublishing VAT Group Management
App successfully unpublished
Removing _Exclude_Business_Events_
Uninstalling _Exclude_Business_Events_ from tenant default
Cleaning Schema from _Exclude_Business_Events_ on default
Unpublishing _Exclude_Business_Events_
App successfully unpublished
Removing _Exclude_ClientAddIns_
Uninstalling _Exclude_ClientAddIns_ from tenant default
Cleaning Schema from _Exclude_ClientAddIns_ on default
Unpublishing _Exclude_ClientAddIns_
App successfully unpublished
Removing Permissions Mock
Uninstalling Permissions Mock from tenant default
Cleaning Schema from Permissions Mock on default
Unpublishing Permissions Mock
App successfully unpublished
Removing Test Runner
Uninstalling Test Runner from tenant default
Cleaning Schema from Test Runner on default
Unpublishing Test Runner
App successfully unpublished
Removing _Exclude_PlanConfiguration_
Uninstalling _Exclude_PlanConfiguration_ from tenant default
Cleaning Schema from _Exclude_PlanConfiguration_ on default
Unpublishing _Exclude_PlanConfiguration_
App successfully unpublished
Removing Intrastat Core
Uninstalling Intrastat Core from tenant default
Cleaning Schema from Intrastat Core on default
Unpublishing Intrastat Core
App successfully unpublished
Removing Troubleshoot FA Ledger Entries
Uninstalling Troubleshoot FA Ledger Entries from tenant default
Cleaning Schema from Troubleshoot FA Ledger Entries on default
Unpublishing Troubleshoot FA Ledger Entries
App successfully unpublished
Removing Company Hub
Uninstalling Company Hub from tenant default
Cleaning Schema from Company Hub on default
Unpublishing Company Hub
App successfully unpublished
Removing Send To Email Printer
Uninstalling Send To Email Printer from tenant default
Cleaning Schema from Send To Email Printer on default
Unpublishing Send To Email Printer
App successfully unpublished
Removing Sales and Inventory Forecast
Uninstalling Sales and Inventory Forecast from tenant default
Cleaning Schema from Sales and Inventory Forecast on default
Unpublishing Sales and Inventory Forecast
App successfully unpublished
Removing Email - SMTP Connector
Uninstalling Email - SMTP Connector from tenant default
Cleaning Schema from Email - SMTP Connector on default
Unpublishing Email - SMTP Connector
App successfully unpublished
Removing Email - SMTP API
Uninstalling Email - SMTP API from tenant default
Cleaning Schema from Email - SMTP API on default
Unpublishing Email - SMTP API
App successfully unpublished
Removing Sustainability
Uninstalling Sustainability from tenant default
Cleaning Schema from Sustainability on default
Unpublishing Sustainability
App successfully unpublished
Removing Payment Practices
Uninstalling Payment Practices from tenant default
Cleaning Schema from Payment Practices on default
Unpublishing Payment Practices
App successfully unpublished
Removing _Exclude_Master_Data_Management
Uninstalling _Exclude_Master_Data_Management from tenant default
Cleaning Schema from _Exclude_Master_Data_Management on default
Unpublishing _Exclude_Master_Data_Management
App successfully unpublished
Removing _Exclude_ReportLayouts
Uninstalling _Exclude_ReportLayouts from tenant default
Cleaning Schema from _Exclude_ReportLayouts on default
Unpublishing _Exclude_ReportLayouts
App successfully unpublished
Removing E-Document Core Demo Data
Uninstalling E-Document Core Demo Data from tenant default
Cleaning Schema from E-Document Core Demo Data on default
Unpublishing E-Document Core Demo Data
App successfully unpublished
Removing E-Document Core
Uninstalling E-Document Core from tenant default
Cleaning Schema from E-Document Core on default
Unpublishing E-Document Core
App successfully unpublished
Removing Contoso Coffee Demo Dataset
Uninstalling Contoso Coffee Demo Dataset from tenant default
Cleaning Schema from Contoso Coffee Demo Dataset on default
Unpublishing Contoso Coffee Demo Dataset
App successfully unpublished
Removing Application
Uninstalling Application from tenant default
Cleaning Schema from Application on default
Unpublishing Application
App successfully unpublished
Removing Base Application
Uninstalling Base Application from tenant default
Cleaning Schema from Base Application on default
Unpublishing Base Application
App successfully unpublished
Removing Business Foundation
Uninstalling Business Foundation from tenant default
Cleaning Schema from Business Foundation on default
Unpublishing Business Foundation
App successfully unpublished
Removing System Application
Uninstalling System Application from tenant default
Cleaning Schema from System Application on default
Unpublishing System Application
App successfully unpublished
Creating container BC-SystemApp took 1362.9540914 seconds
Container BC-SystemApp is available
Publishing apps...
Checking dependencies in D:\BcContainerHelper\Extensions\BC-SystemApp\75944cd2-da52-4b74-b0a2-88ed413a6fb1\Microsoft_System Application_25.0.0.0.app
Replacing Package ID with new GUID
Publishing Microsoft_System Application_25.0.0.0.app to http://172.25.49.4:7049/BC/dev/apps?SchemaUpdateMode=forcesync&tenant=default
Status Code UnprocessableEntity : Unprocessable Entity
Unrecognized Guid format.

Publish-BcContainerApp Telemetry Correlation Id: 11118833-a282-41b4-bac2-0910b61f5253
Exception: C:\Program Files\WindowsPowerShell\Modules\BCContainerHelper\6.0.17\AppHandling\Publish-NavContainerApp.ps1:295
Line |
 295 |                          throw $message
     |                          ~~~~~~~~~~~~~~
     | Status Code UnprocessableEntity : Unprocessable Entity Unrecognized Guid format.
PS D:\GitProjekte\BCApps>

BcContainerDebugInfo (redacted computer name in docker.info):

PS D:\GitProjekte\BCApps> Get-BcContainerDebugInfo -containerName BC-SystemApp
{
  "container.labels": {
    "country": "W1",
    "created": "202404260842",
    "eula": "https://go.microsoft.com/fwlink/?linkid=861843",
    "maintainer": "Dynamics SMB",
    "nav": "",
    "osversion": "10.0.20348.2402",
    "platform": "25.0.19281.0",
    "tag": "1.0.2.20",
    "version": "25.0.19335.0"
  },
  "docker.info": [
    "Client:",
    " Context:    default",
    " Debug Mode: false",
    " Plugins:",
    "  buildx: Docker Buildx (Docker Inc., v0.8.1)",
    "  compose: Docker Compose (Docker Inc., v2.3.3)",
    "  scan: Docker Scan (Docker Inc., v0.17.0)",
    "",
    "Server:",
    " Containers: 1",
    "  Running: 1",
    "  Paused: 0",
    "  Stopped: 0",
    " Images: 1",
    " Server Version: 20.10.13",
    " Storage Driver: windowsfilter",
    "  Windows: ",
    " Logging Driver: json-file",
    " Plugins:",
    "  Volume: local",
    "  Network: ics internal l2bridge l2tunnel nat null overlay private transparent",
    "  Log: awslogs etwlogs fluentd gcplogs gelf json-file local logentries splunk syslog",
    " Swarm: inactive",
    " Default Isolation: hyperv",
    " Kernel Version: 10.0 22631 (22621.1.amd64fre.ni_release.220506-1250)",
    " Operating System: Windows 10 Enterprise Version 2009 (OS Build 22631.3593)",
    " OSType: windows",
    " Architecture: x86_64",
    " CPUs: 12",
    " Total Memory: 31.75GiB",
    " Name: <redacted>",
    " ID: LSWC:EICX:56CL:2AGF:CQ2J:C3EK:MNHN:VODZ:MXOX:DBZP:VFPT:NUCA",
    " Docker Root Dir: D:\\Docker2",
    " Debug Mode: false",
    " Registry: https://index.docker.io/v1/",
    " Labels:",
    " Experimental: false",
    " Insecure Registries:",
    "  127.0.0.0/8",
    " Live Restore Enabled: false",
    " Product License: Community Engine",
    ""
  ],
  "container.env": [
    "enableApiServices=Y",
    "securePassword=<specified>",
    "removePasswordKeyFile=Y",
    "databaseServer=",
    "ExitOnError=N",
    "auth=NavUserPassword",
    "username=admin",
    "databaseInstance=",
    "filesOnly=False",
    "passwordKeyFile=c:\\run\\my\\aes.key",
    "accept_eula=Y",
    "artifactUrl=https://bcinsider-fvh2ekdjecfjd6gk.b02.azurefd.net/sandbox/25.0.19335.0/base",
    "licenseFile=<specified>",
    "locale=en-US",
    "useSSL=N",
    "accept_outdated=Y",
    "isBcSandbox=N",
    "DOTNET_RUNNING_IN_CONTAINER=true",
    "COMPLUS_RUNNING_IN_CONTAINER=1",
    "COMPLUS_NGenProtectedProcess_FeatureEnabled=0",
    "only24=False"
  ],
  "container.logs": [
    "Using artifactUrl https://bcinsider-fvh2ekdjecfjd6gk.b02.azurefd.net/sandbox/25.0.19335.0/base",
    "Using installer from C:\\Run\\240",
    "Installing Business Central: multitenant=False, installOnly=False, filesOnly=False, includeTestToolkit=False, includeTestLibrariesOnly=False, includeTestFrameworkOnly=False, includePerformanceToolkit=False, appArtifactPath=c:\\dl\\sandbox\\25.0.19335.0\\base, platformArtifactPath=c:\\dl\\sandbox\\25.0.19335.0\\platform, databasePath=c:\\dl\\sandbox\\25.0.19335.0\\base\\Demo Database BC (25-0).bak, licenseFilePath=c:\\dl\\sandbox\\25.0.19335.0\\base\\Cronus.bclicense, rebootContainer=True",
    "Installing from artifacts",
    "Starting Local SQL Server",
    "Starting Internet Information Server",
    "Copying Service Tier Files",
    "c:\\dl\\sandbox\\25.0.19335.0\\platform\\ServiceTier\\Program Files",
    "c:\\dl\\sandbox\\25.0.19335.0\\platform\\ServiceTier\\System64Folder",
    "Copying Web Client Files",
    "c:\\dl\\sandbox\\25.0.19335.0\\platform\\WebClient\\Microsoft Dynamics NAV",
    "Copying ModernDev Files",
    "c:\\dl\\sandbox\\25.0.19335.0\\platform",
    "c:\\dl\\sandbox\\25.0.19335.0\\platform\\ModernDev\\program files\\Microsoft Dynamics NAV",
    "Copying additional files",
    "Copying ConfigurationPackages",
    "C:\\dl\\sandbox\\25.0.19335.0\\platform\\ConfigurationPackages",
    "Copying Test Assemblies",
    "C:\\dl\\sandbox\\25.0.19335.0\\platform\\Test Assemblies",
    "Copying Applications",
    "C:\\dl\\sandbox\\25.0.19335.0\\platform\\Applications",
    "Copying dependencies",
    "Importing PowerShell Modules",
    "Restoring CRONUS Demo Database",
    "Setting CompatibilityLevel for CRONUS on localhost\\SQLEXPRESS",
    "Modifying Business Central Service Tier Config File for Docker",
    "Creating Business Central Service Tier",
    "Installing SIP crypto provider: 'C:\\Windows\\System32\\NavSip.dll'",
    "Starting Business Central Service Tier",
    "Importing license file",
    "Stopping Business Central Service Tier",
    "Installation took 226 seconds",
    "Installation complete",
    "Initializing...",
    "Setting host.containerhelper.internal to 172.25.48.1 in container hosts file",
    "Starting Container",
    "Hostname is BC-SystemApp",
    "PublicDnsName is BC-SystemApp",
    "WARNING: DNS resolution not working from within the container.",
    "Using NavUserPassword Authentication",
    "Creating Self Signed Certificate",
    "Self Signed Certificate Thumbprint 511E0A3F8B1CC35585000BFCC5844A094A553522",
    "DNS identity BC-SystemApp",
    "Modifying Service Tier Config File with Instance Specific Settings",
    "Starting Service Tier",
    "Registering event sources",
    "Creating DotNetCore Web Server Instance",
    "Using application pool name: BC",
    "Using default container name: NavWebApplicationContainer",
    "Copy files to WWW root C:\\inetpub\\wwwroot\\BC",
    "Create the application pool BC",
    "Create website: NavWebApplicationContainer without SSL",
    "Update configuration: navsettings.json",
    "Done Configuring Web Client",
    "Creating http download site",
    "Setting SA Password and enabling SA",
    "Creating admin as SQL User and add to sysadmin",
    "Creating SUPER user",
    "WARNING: The password that you entered does not meet the minimum requirements. ",
    "It should be at least 8 characters long and contain at least one uppercase ",
    "letter, one lowercase letter, and one number.",
    "Container IP Address: 172.25.49.4",
    "Container Hostname  : BC-SystemApp",
    "Container Dns Name  : BC-SystemApp",
    "Web Client          : http://BC-SystemApp/BC/",
    "Dev. Server         : http://BC-SystemApp",
    "Dev. ServerInstance : BC",
    "",
    "Files:",
    "http://BC-SystemApp:8080/ALLanguage.vsix",
    "",
    "Container Total Physical Memory is 31.8Gb",
    "Container Free Physical Memory is 11.4Gb",
    "",
    "Initialization took 118 seconds",
    "Ready for connections!"
  ],
  "container.ping": [
    "",
    "Ping wird ausgeführt für BC-SystemApp.local [fe80::3de4:f986:671:910%30] mit 32 Bytes Daten:",
    "Antwort von fe80::3de4:f986:671:910%30: Zeit<1ms ",
    "Antwort von fe80::3de4:f986:671:910%30: Zeit<1ms ",
    "Antwort von fe80::3de4:f986:671:910%30: Zeit<1ms ",
    "Antwort von fe80::3de4:f986:671:910%30: Zeit<1ms ",
    "",
    "Ping-Statistik für fe80::3de4:f986:671:910%30:",
    "    Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0",
    "    (0% Verlust),",
    "Ca. Zeitangaben in Millisek.:",
    "    Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms"
  ]
}

alAssemblyProbingPaths in setting.json (my BcContainerHelper is installed on D:):

    "al.assemblyProbingPaths": 
    [
        "./.netpackages",
        "D:/BcContainerHelper/Extensions/BC-SystemApp/.netPackages",
    ],

Installed VS Code extensions:

PS D:\GitProjekte\BCApps> code --list-extensions --show-versions
a5hk.paper@2.0.0
akamud.vscode-theme-onedark@2.3.0
alefragnani.Bookmarks@13.5.0
andrzejzwierzchowski.al-code-outline@13.62.0
argutec.argutec-azure-repos@1.2007.15
daniel-nt.al-translation-center@2.6.2
davidfeldhoff.al-codeactions@1.0.35
daylerees.rainglow@1.5.2
donjayamanne.githistory@0.6.20
eamodio.gitlens@15.0.3
Equinusocio.vsc-material-theme@34.3.1
equinusocio.vsc-material-theme-icons@3.6.0
GitHub.remotehub@0.62.0
jmrog.vscode-nuget-package-manager@1.1.6
martonsagi.al-object-designer@0.2.4
monokai.theme-monokai-pro-vscode@1.3.2
ms-dotnettools.csharp@2.28.11
ms-dotnettools.vscode-dotnet-runtime@2.0.5
ms-dynamics-smb.al@14.0.1010940
ms-graph.kiota@1.14.100000001
ms-vscode.azure-repos@0.38.0
ms-vscode.powershell@2024.2.2
ms-vscode.remote-repositories@0.40.0
ms-vsliveshare.vsliveshare@1.0.5918
nabsolutions.nab-al-tools@1.32.0
naumovs.color-highlight@2.8.0
ryuta46.multi-command@1.6.0
statical.prism-al@1.5.0
teabyii.ayu@1.0.5
tonybaloney.vscode-pets@1.25.1
usernamehw.errorlens@3.17.0
vector-of-bool.gitflow@1.2.1
waldo.crs-al-language-extension@1.5.31
wayou.vscode-todo-highlight@1.0.5
wbrakowski.al-navigator@0.6.0
yzhang.markdown-all-in-one@3.6.2
zhuangtongfa.material-theme@3.17.2
Drakonian commented 6 months ago

@ptrk-tr

Build system is a little bit broken now :( I spend more time fighting build scripts than I do developing. Maybe I'm doing something wrong after all and inventing a bicycle. But it works for me ))

Here some magic steps which should help you

  1. Remove all data of .artifactsCache folder

  2. Build System App .\build\scripts\DevEnv\NewDevEnv.ps1 -containerName 'YourContainerName' -userName admin -password 'Qwerty123!' -projectPaths '.\src\System Application\*' Try now! If error exists continue steps

  3. Comment all error places

  4. Go to .artifactsCache folder and copy several files into .artifactsCache\symbols. Remove versions to replace exists files from .artifactsCache\symbols Repeat several times if something was not generated after build in .artifactsCache folder

    Microsoft_System Application Test Library_25.0.0.0.app
    Microsoft_System Application Test_25.0.0.0.app
    Microsoft_System Application_25.0.0.0.app
  5. Remove all files (not folders) from .artifactsCache folder

  6. Uncomment all commented places from p.4

  7. Build System App `.\build\scripts\DevEnv\NewDevEnv.ps1 -containerName 'YourContainerName' -userName admin -password 'Qwerty123!' -projectPaths '.\src\System Application*'

I hope it will help you 😃

pri-kise commented 6 months ago

I'm having problems, too. But at another place:

PS C:\WINDOWS\system32> C:\Users\kise\source\AL\Microsoft\kise-bcapps-devenv.ps1
BcContainerHelper version 6.0.17
WinRM service is not running, will not try to use WinRM sessions
BC.HelperFunctions emits usage statistics telemetry to Microsoft
Running on Windows, PowerShell 5.1.22621.2506
Creating container bcapps-systemapp from artifact URL https://bcinsider-fvh2ekdjecfjd6gk.b02.azurefd.net/sandbox/25.0.19746.0/base in the background. Job ID: 1
Resolved project paths: C:\Users\kise\source\AL\Microsoft\BCApps\src\System Application\App
C:\Users\kise\source\AL\Microsoft\BCApps\src\System Application\Test
C:\Users\kise\source\AL\Microsoft\BCApps\src\System Application\Test Library
Building apps...
Building app in C:\Users\kise\source\AL\Microsoft\BCApps\src\System Application\App
App Microsoft_System Application_25.0.0.0.app already exists in C:\Users\kise\source\AL\Microsoft\BCApps\.artifactsCache. Skipping...
Building app in C:\Users\kise\source\AL\Microsoft\BCApps\src\System Application\Test
Building dependency: 63ca2fa4-4f03-4f2b-a480-172fef340d3f
App Microsoft_System Application_25.0.0.0.app already exists in C:\Users\kise\source\AL\Microsoft\BCApps\.artifactsCache. Skipping...
Building dependency: 9856ae4f-d1a7-46ef-89bb-6ef056398228
Building dependency: 63ca2fa4-4f03-4f2b-a480-172fef340d3f
App Microsoft_System Application_25.0.0.0.app already exists in C:\Users\kise\source\AL\Microsoft\BCApps\.artifactsCache. Skipping...
Building dependency: e7320ebb-08b3-4406-b1ec-b4927d3e280b
App Microsoft_Any_25.0.0.0.app already exists in C:\Users\kise\source\AL\Microsoft\BCApps\.artifactsCache. Skipping...
App Microsoft_System Application Test Library_25.0.0.0.app already exists in C:\Users\kise\source\AL\Microsoft\BCApps\.artifactsCache. Skipping...
Building dependency: dd0be2ea-f733-4d65-bb34-a28f4624fb14
App Microsoft_Library Assert_25.0.0.0.app already exists in C:\Users\kise\source\AL\Microsoft\BCApps\.artifactsCache. Skipping...
Building dependency: e7320ebb-08b3-4406-b1ec-b4927d3e280b
App Microsoft_Any_25.0.0.0.app already exists in C:\Users\kise\source\AL\Microsoft\BCApps\.artifactsCache. Skipping...
Building dependency: 5095f467-0a01-4b99-99d1-9ff1237d286f
Building dependency: dd0be2ea-f733-4d65-bb34-a28f4624fb14
App Microsoft_Library Assert_25.0.0.0.app already exists in C:\Users\kise\source\AL\Microsoft\BCApps\.artifactsCache. Skipping...
App Microsoft_Library Variable Storage_25.0.0.0.app already exists in C:\Users\kise\source\AL\Microsoft\BCApps\.artifactsCache. Skipping...
Building dependency: 40860557-a18d-42ad-aecb-22b7dd80dc80
App Microsoft_Permissions Mock_25.0.0.0.app already exists in C:\Users\kise\source\AL\Microsoft\BCApps\.artifactsCache. Skipping...
App Microsoft_System Application Test_25.0.0.0.app already exists in C:\Users\kise\source\AL\Microsoft\BCApps\.artifactsCache. Skipping...
Building app in C:\Users\kise\source\AL\Microsoft\BCApps\src\System Application\Test Library
Building dependency: 63ca2fa4-4f03-4f2b-a480-172fef340d3f
App Microsoft_System Application_25.0.0.0.app already exists in C:\Users\kise\source\AL\Microsoft\BCApps\.artifactsCache. Skipping...
Building dependency: e7320ebb-08b3-4406-b1ec-b4927d3e280b
App Microsoft_Any_25.0.0.0.app already exists in C:\Users\kise\source\AL\Microsoft\BCApps\.artifactsCache. Skipping...
App Microsoft_System Application Test Library_25.0.0.0.app already exists in C:\Users\kise\source\AL\Microsoft\BCApps\.artifactsCache. Skipping...
Building apps took 1.7432124 seconds
App files: C:\Users\kise\source\AL\Microsoft\BCApps\.artifactsCache\Microsoft_System Application_25.0.0.0.app
C:\Users\kise\source\AL\Microsoft\BCApps\.artifactsCache\Microsoft_Any_25.0.0.0.app
C:\Users\kise\source\AL\Microsoft\BCApps\.artifactsCache\Microsoft_System Application Test Library_25.0.0.0.app
C:\Users\kise\source\AL\Microsoft\BCApps\.artifactsCache\Microsoft_Library Assert_25.0.0.0.app
C:\Users\kise\source\AL\Microsoft\BCApps\.artifactsCache\Microsoft_Library Variable Storage_25.0.0.0.app
C:\Users\kise\source\AL\Microsoft\BCApps\.artifactsCache\Microsoft_Permissions Mock_25.0.0.0.app
C:\Users\kise\source\AL\Microsoft\BCApps\.artifactsCache\Microsoft_System Application Test_25.0.0.0.app
Waiting for container creation to finish...
BcContainerHelper version 6.0.17
WinRM service is not running, will not try to use WinRM sessions
BC.HelperFunctions emits usage statistics telemetry to Microsoft
Running on Windows, PowerShell 5.1.22621.2506
WARNING: Container name should not exceed 15 characters
BcContainerHelper is version 6.0.17
BcContainerHelper is running as administrator
HyperV is Enabled
Host is Microsoft Windows 11 Enterprise - 10.0.22631.3593
UsePsSession is True
UsePwshForBc24 is True
UseWinRmSession is never
UseSslForWinRmSession is True
Docker Client Version is 26.1.2
Docker Server Version is 26.1.2
Removing Desktop shortcuts
Downloading artifact /sandbox/25.0.19746.0/base
Downloading C:\Users\kise\AppData\Local\Temp\bd7310f6-b92f-491c-a597-1639ace300f5.zip
Unpacking artifact to tmp folder using 7zip
Downloading platform artifact /sandbox/25.0.19746.0/platform
Downloading C:\Users\kise\AppData\Local\Temp\abb204f0-153c-4c24-8744-a91dae134574.zip
Unpacking artifact to tmp folder using 7zip
Downloading Prerequisite Components
Downloading c:\bcartifacts.cache\sandbox\25.0.19746.0\platform\Prerequisite Components\IIS URL Rewrite Module\rewrite_2.0_rtw_x64.msi
Downloading c:\bcartifacts.cache\sandbox\25.0.19746.0\platform\Prerequisite Components\DotNetCore\DotNetCore.1.0.4_1.1.1-WindowsHosting.exe
Fetching all docker images
Fetching all docker volumes
Using image mcr.microsoft.com/businesscentral:ltsc2022
Creating Container bcapps-systemapp
Style: onprem
Multitenant: No
Version: 25.0.19746.0
Platform: 25.0.19640.0
Generic Tag: 1.0.2.20
Container OS Version: 10.0.20348.2402 (ltsc2022)
Host OS Version: 10.0.22631.3593 (23H2)
WARNING: Container and host OS build is 20348 or above, defaulting to process isolation. If you encounter issues, you could try to install HyperV.
Using process isolation
Using locale en-US
Disabling the standard eventlog dump to container log every 2 seconds (use -dumpEventLog to enable)
Additional Parameters:
--volume "C:/Users/kise/source/AL/Microsoft/BCApps:c:\sources"
Files in C:\ProgramData\BcContainerHelper\Extensions\bcapps-systemapp\my:
- AdditionalOutput.ps1
- HelperFunctions.ps1
- MainLoop.ps1
- SetupVariables.ps1
- updatecontainerhosts.ps1
Creating container bcapps-systemapp from image mcr.microsoft.com/businesscentral:ltsc2022
1fb23eed3d1d17914649463eacda4bf3757a256d91ac323b9580908ce356c250
Waiting for container bcapps-systemapp to be ready
Adding BCAPPS-SYSTEMAP to hosts file
Using artifactUrl https://bcinsider-fvh2ekdjecfjd6gk.b02.azurefd.net/sandbox/25.0.19746.0/base
Using installer from C:\Run\240
Installing Business Central: multitenant=False, installOnly=False, filesOnly=False, includeTestToolkit=False, includeTestLibrariesOnly=False, includeTestFrameworkOnly=False, includePerformanceToolkit=False, appArtifactPath=c:\dl\sandbox\25.0.19746.0\base, platformArtifactPath=c:\dl\sandbox
\25.0.19746.0\platform, databasePath=c:\dl\sandbox\25.0.19746.0\base\Demo Database BC (25-0).bak, licenseFilePath=c:\dl\sandbox\25.0.19746.0\base\Cronus.bclicense, rebootContainer=True
Installing from artifacts
Starting Local SQL Server
Starting Internet Information Server
Copying Service Tier Files
c:\dl\sandbox\25.0.19746.0\platform\ServiceTier\Program Files
c:\dl\sandbox\25.0.19746.0\platform\ServiceTier\System64Folder
Copying Web Client Files
c:\dl\sandbox\25.0.19746.0\platform\WebClient\Microsoft Dynamics NAV
Copying ModernDev Files
c:\dl\sandbox\25.0.19746.0\platform
c:\dl\sandbox\25.0.19746.0\platform\ModernDev\program files\Microsoft Dynamics NAV
Copying additional files
Copying ConfigurationPackages
C:\dl\sandbox\25.0.19746.0\platform\ConfigurationPackages
Copying Test Assemblies
C:\dl\sandbox\25.0.19746.0\platform\Test Assemblies
Copying Applications
C:\dl\sandbox\25.0.19746.0\platform\Applications
Copying dependencies
Importing PowerShell Modules
Restoring CRONUS Demo Database
Setting CompatibilityLevel for CRONUS on localhost\SQLEXPRESS
Modifying Business Central Service Tier Config File for Docker
Creating Business Central Service Tier
Installing SIP crypto provider: 'C:\Windows\System32\NavSip.dll'
Starting Business Central Service Tier
Importing license file
Stopping Business Central Service Tier
Installation took 308 seconds
Installation complete
Initializing...
Setting host.containerhelper.internal to 192.168.64.1 in container hosts file
Starting Container
Hostname is bcapps-systemapp
PublicDnsName is bcapps-systemapp
Using NavUserPassword Authentication
Creating Self Signed Certificate
Self Signed Certificate Thumbprint 22C2F06F12C416A182323F39CA65F9EE8D170CF0
DNS identity bcapps-systemapp
Modifying Service Tier Config File with Instance Specific Settings
Starting Service Tier
Registering event sources
Creating DotNetCore Web Server Instance
Using application pool name: BC
Using default container name: NavWebApplicationContainer
Copy files to WWW root C:\inetpub\wwwroot\BC
Create the application pool BC
Create website: NavWebApplicationContainer without SSL
Update configuration: navsettings.json
Done Configuring Web Client
Creating http download site
Setting SA Password and enabling SA
Creating admin as SQL User and add to sysadmin
Creating SUPER user
WARNING: The password that you entered does not meet the minimum requirements. 
It should be at least 8 characters long and contain at least one uppercase 
letter, one lowercase letter, and one number.
Container IP Address: 192.168.69.77
Container Hostname  : bcapps-systemapp
Container Dns Name  : bcapps-systemapp
Web Client          : http://bcapps-systemapp/BC/
Dev. Server         : http://bcapps-systemapp
Dev. ServerInstance : BC

Files:
http://bcapps-systemapp:8080/ALLanguage.vsix

Container Total Physical Memory is 31.2Gb
Container Free Physical Memory is 11.0Gb

Initialization took 54 seconds
Ready for connections!
Reading CustomSettings.config from bcapps-systemapp
Cleanup old dotnet core assemblies
Creating .net Assembly Reference Folder
Copying DLLs from C:\Program Files\dotnet\Shared to assemblyProbingPath
Copying DLLs from C:\Program Files\Microsoft Dynamics NAV\250\Service to assemblyProbingPath
Copying DLLs from C:\Test Assemblies\Mock Assemblies to assemblyProbingPath
Removing dotnet Framework Assemblies
Container bcapps-systemapp successfully created

Use:
Get-BcContainerEventLog -containerName bcapps-systemapp to retrieve a snapshot of the event log from the container
Get-BcContainerDebugInfo -containerName bcapps-systemapp to get debug information about the container
Enter-BcContainer -containerName bcapps-systemapp to open a PowerShell prompt inside the container
Remove-BcContainer -containerName bcapps-systemapp to remove the container again
docker logs bcapps-systemapp to retrieve information about URL's again
Removing Late Payment Prediction
Uninstalling Late Payment Prediction from tenant default
Cleaning Schema from Late Payment Prediction on default
Unpublishing Late Payment Prediction
App successfully unpublished
Removing Shopify Connector
Uninstalling Shopify Connector from tenant default
Cleaning Schema from Shopify Connector on default
Unpublishing Shopify Connector
App successfully unpublished
Removing Dynamics BC Excel Reports
Uninstalling Dynamics BC Excel Reports from tenant default
Cleaning Schema from Dynamics BC Excel Reports on default
Unpublishing Dynamics BC Excel Reports
App successfully unpublished
Removing Recommended Apps
Uninstalling Recommended Apps from tenant default
Cleaning Schema from Recommended Apps on default
Unpublishing Recommended Apps
App successfully unpublished
Removing _Exclude_Email Logging Using Graph API
Uninstalling _Exclude_Email Logging Using Graph API from tenant default
Cleaning Schema from _Exclude_Email Logging Using Graph API on default
Unpublishing _Exclude_Email Logging Using Graph API
App successfully unpublished
Removing Permissions Mock
Uninstalling Permissions Mock from tenant default
Cleaning Schema from Permissions Mock on default
Unpublishing Permissions Mock
App successfully unpublished
Removing VAT Group Management
Uninstalling VAT Group Management from tenant default
Cleaning Schema from VAT Group Management on default
Unpublishing VAT Group Management
App successfully unpublished
Removing Email - Microsoft 365 Connector
Uninstalling Email - Microsoft 365 Connector from tenant default
Cleaning Schema from Email - Microsoft 365 Connector on default
Unpublishing Email - Microsoft 365 Connector
App successfully unpublished
Removing _Exclude_APIV2_
Uninstalling _Exclude_APIV2_ from tenant default
Cleaning Schema from _Exclude_APIV2_ on default
Unpublishing _Exclude_APIV2_
App successfully unpublished
Removing Sustainability Contoso Coffee Demo Dataset
Uninstalling Sustainability Contoso Coffee Demo Dataset from tenant default
Cleaning Schema from Sustainability Contoso Coffee Demo Dataset on default
Unpublishing Sustainability Contoso Coffee Demo Dataset
App successfully unpublished
Removing Troubleshoot FA Ledger Entries
Uninstalling Troubleshoot FA Ledger Entries from tenant default
Cleaning Schema from Troubleshoot FA Ledger Entries on default
Unpublishing Troubleshoot FA Ledger Entries
App successfully unpublished
Removing Essential Business Headlines
Uninstalling Essential Business Headlines from tenant default
Cleaning Schema from Essential Business Headlines on default
Unpublishing Essential Business Headlines
App successfully unpublished
Removing Company Hub
Uninstalling Company Hub from tenant default
Cleaning Schema from Company Hub on default
Unpublishing Company Hub
App successfully unpublished
Removing Sales Lines Suggestions
Uninstalling Sales Lines Suggestions from tenant default
Cleaning Schema from Sales Lines Suggestions on default
Unpublishing Sales Lines Suggestions
App successfully unpublished
Removing _Exclude_Bank Deposits
Uninstalling _Exclude_Bank Deposits from tenant default
Cleaning Schema from _Exclude_Bank Deposits on default
Unpublishing _Exclude_Bank Deposits
App successfully unpublished
Removing _Exclude_ReportLayouts
Uninstalling _Exclude_ReportLayouts from tenant default
Cleaning Schema from _Exclude_ReportLayouts on default
Unpublishing _Exclude_ReportLayouts
App successfully unpublished
Removing Review General Ledger Entries
Uninstalling Review General Ledger Entries from tenant default
Cleaning Schema from Review General Ledger Entries on default
Unpublishing Review General Ledger Entries
App successfully unpublished
Removing Service Declaration
Uninstalling Service Declaration from tenant default
Cleaning Schema from Service Declaration on default
Unpublishing Service Declaration
App successfully unpublished
Removing Error Messages with Recommendations
Uninstalling Error Messages with Recommendations from tenant default
Cleaning Schema from Error Messages with Recommendations on default
Unpublishing Error Messages with Recommendations
App successfully unpublished
Removing Sales and Inventory Forecast
Uninstalling Sales and Inventory Forecast from tenant default
Cleaning Schema from Sales and Inventory Forecast on default
Unpublishing Sales and Inventory Forecast
App successfully unpublished
Removing _Exclude_Business_Events_
Uninstalling _Exclude_Business_Events_ from tenant default
Cleaning Schema from _Exclude_Business_Events_ on default
Unpublishing _Exclude_Business_Events_
App successfully unpublished
Removing E-Document Core Demo Data
Uninstalling E-Document Core Demo Data from tenant default
Cleaning Schema from E-Document Core Demo Data on default
Unpublishing E-Document Core Demo Data
App successfully unpublished
Removing Email - Current User Connector
Uninstalling Email - Current User Connector from tenant default
Cleaning Schema from Email - Current User Connector on default
Unpublishing Email - Current User Connector
App successfully unpublished
Removing Simplified Bank Statement Import
Uninstalling Simplified Bank Statement Import from tenant default
Cleaning Schema from Simplified Bank Statement Import on default
Unpublishing Simplified Bank Statement Import
App successfully unpublished
Removing _Exclude_PlanConfiguration_
Uninstalling _Exclude_PlanConfiguration_ from tenant default
Cleaning Schema from _Exclude_PlanConfiguration_ on default
Unpublishing _Exclude_PlanConfiguration_
App successfully unpublished
Removing Payment Practices
Uninstalling Payment Practices from tenant default
Cleaning Schema from Payment Practices on default
Unpublishing Payment Practices
App successfully unpublished
Removing Contoso Coffee Demo Dataset
Uninstalling Contoso Coffee Demo Dataset from tenant default
Cleaning Schema from Contoso Coffee Demo Dataset on default
Unpublishing Contoso Coffee Demo Dataset
App successfully unpublished
Removing SAF-T
Uninstalling SAF-T from tenant default
Cleaning Schema from SAF-T on default
Unpublishing SAF-T
App successfully unpublished
Removing _Exclude_APIV1_
Uninstalling _Exclude_APIV1_ from tenant default
Cleaning Schema from _Exclude_APIV1_ on default
Unpublishing _Exclude_APIV1_
App successfully unpublished
Removing Email - SMTP Connector
Uninstalling Email - SMTP Connector from tenant default
Cleaning Schema from Email - SMTP Connector on default
Unpublishing Email - SMTP Connector
App successfully unpublished
Removing Send To Email Printer
Uninstalling Send To Email Printer from tenant default
Cleaning Schema from Send To Email Printer on default
Unpublishing Send To Email Printer
App successfully unpublished
Removing EU 3-Party Trade Purchase
Uninstalling EU 3-Party Trade Purchase from tenant default
Cleaning Schema from EU 3-Party Trade Purchase on default
Unpublishing EU 3-Party Trade Purchase
App successfully unpublished
Removing Enforced Digital Vouchers
Uninstalling Enforced Digital Vouchers from tenant default
Cleaning Schema from Enforced Digital Vouchers on default
Unpublishing Enforced Digital Vouchers
App successfully unpublished
Removing API Reports - Finance
Uninstalling API Reports - Finance from tenant default
Cleaning Schema from API Reports - Finance on default
Unpublishing API Reports - Finance
App successfully unpublished
Removing Email - Outlook REST API
Uninstalling Email - Outlook REST API from tenant default
Cleaning Schema from Email - Outlook REST API on default
Unpublishing Email - Outlook REST API
App successfully unpublished
Removing Sustainability
Uninstalling Sustainability from tenant default
Cleaning Schema from Sustainability on default
Unpublishing Sustainability
App successfully unpublished
Removing Statistical Accounts
Uninstalling Statistical Accounts from tenant default
Cleaning Schema from Statistical Accounts on default
Unpublishing Statistical Accounts
App successfully unpublished
Removing Payment Links to PayPal
Uninstalling Payment Links to PayPal from tenant default
Cleaning Schema from Payment Links to PayPal on default
Unpublishing Payment Links to PayPal
App successfully unpublished
Removing _Exclude_Master_Data_Management
Uninstalling _Exclude_Master_Data_Management from tenant default
Cleaning Schema from _Exclude_Master_Data_Management on default
Unpublishing _Exclude_Master_Data_Management
App successfully unpublished
Removing Intrastat Core
Uninstalling Intrastat Core from tenant default
Cleaning Schema from Intrastat Core on default
Unpublishing Intrastat Core
App successfully unpublished
Removing Universal Print Integration
Uninstalling Universal Print Integration from tenant default
Cleaning Schema from Universal Print Integration on default
Unpublishing Universal Print Integration
App successfully unpublished
Removing OnPrem Permissions
Uninstalling OnPrem Permissions from tenant default
Cleaning Schema from OnPrem Permissions on default
Unpublishing OnPrem Permissions
App successfully unpublished
Removing Performance Toolkit
Uninstalling Performance Toolkit from tenant default
Cleaning Schema from Performance Toolkit on default
Unpublishing Performance Toolkit
App successfully unpublished
Removing Test Runner
Uninstalling Test Runner from tenant default
Cleaning Schema from Test Runner on default
Unpublishing Test Runner
App successfully unpublished
Removing Data Archive
Uninstalling Data Archive from tenant default
Cleaning Schema from Data Archive on default
Unpublishing Data Archive
App successfully unpublished
Removing _Exclude_ClientAddIns_
Uninstalling _Exclude_ClientAddIns_ from tenant default
Cleaning Schema from _Exclude_ClientAddIns_ on default
Unpublishing _Exclude_ClientAddIns_
App successfully unpublished
Removing Data Search
Uninstalling Data Search from tenant default
Cleaning Schema from Data Search on default
Unpublishing Data Search
App successfully unpublished
Removing Bank Account Reconciliation With AI
Uninstalling Bank Account Reconciliation With AI from tenant default
Cleaning Schema from Bank Account Reconciliation With AI on default
Unpublishing Bank Account Reconciliation With AI
App successfully unpublished
Removing E-Documents Connector with External Endpoints
Uninstalling E-Documents Connector with External Endpoints from tenant default
Cleaning Schema from E-Documents Connector with External Endpoints on default
Unpublishing E-Documents Connector with External Endpoints
App successfully unpublished
Removing E-Document Core
Uninstalling E-Document Core from tenant default
Cleaning Schema from E-Document Core on default
Unpublishing E-Document Core
App successfully unpublished
Removing Audit File Export
Uninstalling Audit File Export from tenant default
Cleaning Schema from Audit File Export on default
Unpublishing Audit File Export
App successfully unpublished
Removing Email - SMTP API
Uninstalling Email - SMTP API from tenant default
Cleaning Schema from Email - SMTP API on default
Unpublishing Email - SMTP API
App successfully unpublished
Removing Send remittance advice by email
Uninstalling Send remittance advice by email from tenant default
Cleaning Schema from Send remittance advice by email on default
Unpublishing Send remittance advice by email
App successfully unpublished
Removing Application
Uninstalling Application from tenant default
Cleaning Schema from Application on default
Unpublishing Application
App successfully unpublished
Removing Base Application
Uninstalling Base Application from tenant default
Cleaning Schema from Base Application on default
Unpublishing Base Application
App successfully unpublished
Removing Business Foundation
Uninstalling Business Foundation from tenant default
Cleaning Schema from Business Foundation on default
Unpublishing Business Foundation
App successfully unpublished
Removing System Application
Uninstalling System Application from tenant default
Cleaning Schema from System Application on default
Unpublishing System Application
App successfully unpublished
Creating container bcapps-systemapp took 878.6874261 seconds
Container bcapps-systemapp is available
Publishing apps...
Checking dependencies in C:\ProgramData\BcContainerHelper\Extensions\bcapps-systemapp\0b0f6315-6b55-4cf8-98d9-7b745e4a070f\Microsoft_System Application_25.0.0.0.app
Replacing Package ID with new GUID
Publishing Microsoft_System Application_25.0.0.0.app to http://192.168.69.77:7049/BC/dev/apps?SchemaUpdateMode=forcesync&tenant=default
Ausnahme beim Aufrufen von "GetResult" mit 0 Argument(en):  "Fehler beim Senden der Anforderung."
Fehler beim Senden der Anforderung.
Die Verbindung mit dem Remoteserver kann nicht hergestellt werden.
Publish-BcContainerApp Telemetry Correlation Id: bcee8141-d6f2-421c-b968-1f39238668fb
Ausnahme beim Aufrufen von "GetResult" mit 0 Argument(en):  "Fehler beim Senden der Anforderung."
In C:\Program Files\WindowsPowerShell\Modules\BCContainerHelper\6.0.17\AppHandling\Publish-NavContainerApp.ps1:281 Zeichen:21
+ ...             $result = $HttpClient.PostAsync($url, $multipartContent). ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : HttpRequestException

Could it be that -updatehosts is missing? I don't see any parameter to set this. I've now added it in my global BCContainerHelperConfig.

{   
    "defaultNewContainerParameters":  {
                                          "Accept_Eula":  true,
                                          "UpdateHosts":  true,
                                          "accept_insiderEula":  true
                                      }
    }
Drakonian commented 6 months ago

Check what extensions were installed to your container?

also try to publish some app to your created container

for example: Publish-BcContainerApp -containerName bcapps-systemapp -appFile "C:\Users\Drakonian\Documents\AL\BCApps\.artifactsCache\symbols\Microsoft_Test Runner.app" -sync -install

ptrk-tr commented 6 months ago

@ptrk-tr

Build system is a little bit broken now :( I spend more time fighting build scripts than I do developing. Maybe I'm doing something wrong after all and inventing a bicycle. But it works for me ))

Here some magic steps which should help you

1. Remove all data of **.artifactsCache** folder

2. Build System App
   `.\build\scripts\DevEnv\NewDevEnv.ps1 -containerName 'YourContainerName' -userName admin -password 'Qwerty123!' -projectPaths '.\src\System Application\*' `
   Try now! If error exists continue steps

3. Comment all error places

4. Go to **.artifactsCache** folder and copy several files into **.artifactsCache\symbols**. Remove versions to replace exists files from **.artifactsCache\symbols** Repeat several times if something was not generated after build in **.artifactsCache** folder
Microsoft_System Application Test Library_25.0.0.0.app
Microsoft_System Application Test_25.0.0.0.app
Microsoft_System Application_25.0.0.0.app
5. Remove all files (not folders) from **.artifactsCache** folder

6. Uncomment all commented places from p.4

7. Build System App
   `.\build\scripts\DevEnv\NewDevEnv.ps1 -containerName 'YourContainerName' -userName admin -password 'Qwerty123!' -projectPaths '.\src\System Application*'

I hope it will help you 😃

@Drakonian, sorry to get back to you so late. Either I misunderstood the assignment, or my issue didn't get fixed by your suggestion, what I did was:

  1. remove .artifactsCache folder
  2. build everything via the dev_env script
  3. still had the same dotnet errors, so I commented out the lines containing errors in the System Application app
  4. built the System Application app (ctrl+shift+B) from VS Code
  5. moved that built app to .artifactsCache/symbols and removed the version from the file name
  6. remove all app files from .artifactsCache
  7. uncomment the error lines and run the dev_env build script again

Maybe I didn't understand your pt.4 correctly though.

Drakonian commented 6 months ago

@ptrk-tr Build system is a little bit broken now :( I spend more time fighting build scripts than I do developing. Maybe I'm doing something wrong after all and inventing a bicycle. But it works for me )) Here some magic steps which should help you

1. Remove all data of **.artifactsCache** folder

2. Build System App
   `.\build\scripts\DevEnv\NewDevEnv.ps1 -containerName 'YourContainerName' -userName admin -password 'Qwerty123!' -projectPaths '.\src\System Application\*' `
   Try now! If error exists continue steps

3. Comment all error places

4. Go to **.artifactsCache** folder and copy several files into **.artifactsCache\symbols**. Remove versions to replace exists files from **.artifactsCache\symbols** Repeat several times if something was not generated after build in **.artifactsCache** folder
Microsoft_System Application Test Library_25.0.0.0.app
Microsoft_System Application Test_25.0.0.0.app
Microsoft_System Application_25.0.0.0.app
5. Remove all files (not folders) from **.artifactsCache** folder

6. Uncomment all commented places from p.4

7. Build System App
   `.\build\scripts\DevEnv\NewDevEnv.ps1 -containerName 'YourContainerName' -userName admin -password 'Qwerty123!' -projectPaths '.\src\System Application*'

I hope it will help you 😃

@Drakonian, sorry to get back to you so late. Either I misunderstood the assignment, or my issue didn't get fixed by your suggestion, what I did was:

  1. remove .artifactsCache folder
  2. build everything via the dev_env script
  3. still had the same dotnet errors, so I commented out the lines containing errors in the System Application app
  4. built the System Application app (ctrl+shift+B) from VS Code
  5. moved that built app to .artifactsCache/symbols and removed the version from the file name
  6. remove all app files from .artifactsCache
  7. uncomment the error lines and run the dev_env build script again

Maybe I didn't understand your pt.4 correctly though.

1,2,3 - correct

Next is

4.Move System Application and System Application Test and System Application Test Library apps from .artifactsCache to .artifactsCache\symbols. They already here but without versions. So you need remove them from .artifactsCache\symbols and rename your moved apps (remove version part). So, technically you just replace it. 5.Remove all files (not folders) from .artifactsCache folder

  1. Uncomment all commented places from p.3 7.Build System App `.\build\scripts\DevEnv\NewDevEnv.ps1 -containerName 'YourContainerName' -userName admin -password 'Qwerty123!' -projectPaths '.\src\System Application*``