Let's walk through creating a standard Build VM
You are here
7.3 On Prem Deployment With Deployable Package Failure
7.3 On Prem Deployment With Deployable Package Failure
EDIT: This is a known issue that MSFT is actively working on addressing
EDIT 2: This has been addressed by KB 4461011.
If you are an on-prem customer that is attempting to upgrade to 7.3 from 7.2, you may run into an error. The full error is pasted below:
07/23/2018 21:43:05: Microsoft.Dynamics.AX.Metadata.Storage.MetadataReadMissingFileException: The static metadata file 'C:\ProgramData\SF\AOS_232\Fabric\work\Applications\AXSFType_App64\AXSF.Code.1.0.20180723210610\Packages\StaticMetadata\AxView.md' does not exist. at Microsoft.Dynamics.AX.Metadata.Storage.ErrorReportingHelper.ThrowMetadataReadMissingFileException(String path) at Microsoft.Dynamics.AX.Metadata.Storage.Runtime.StaticRuntimeProvider`1..ctor(String runtimeRoot) at Microsoft.Dynamics.AX.Metadata.Storage.Runtime.StaticRuntimeProviderFactory.Create[T](String runtimeRoot) at Microsoft.Dynamics.AX.Metadata.Storage.Runtime.SingleKeyedRuntimeProvider`1..ctor(RuntimeProviderConfiguration configuration, RuntimeModelManifestProvider modelManifestProvider, IDictionary`2 archives) at Microsoft.Dynamics.AX.Metadata.Storage.Runtime.RuntimeMetadataProvider..ctor(RuntimeProviderConfiguration configuration, Boolean extensions, ExtensionLoader`1 formExtensionLoader, ExtensionLoader`1 tableExtensionLoader, ExtensionLoader`1 enumExtensionLoader, ExtensionLoader`1 menuExtensionLoader, ExtensionLoader`1 securityRoleExtensionLoader, ExtensionLoader`1 securityDutyExtensionLoader, ExtensionLoader`1 dataEntityViewExtensionLoader, ExtensionLoader`1 edtExtensionLoader, ExtensionLoader`1 viewExtensionLoader, ExtensionLoader`1 querySimpleExtensionLoader, ExtensionLoader`1 menuItemDisplayExtensionLoader, ExtensionLoader`1 menuItemActionExtensionLoader, ExtensionLoader`1 menuItemOutputExtensionLoader) at Microsoft.Dynamics.AX.Metadata.Storage.MetadataProviderFactory.CreateRuntimeProviderWithExtensions(RuntimeProviderConfiguration configuration, TableExtensionLoader tableExtensionLoader, MenuExtensionLoader menuExtensionLoader, FormExtensionLoader formExtensionLoader, EnumExtensionLoader enumExtensionLoader, SecurityRoleExtensionLoader securityRoleExtensionLoader, SecurityDutyExtensionLoader securityDutyExtensionLoader, DataEntityViewExtensionLoader dataEntityViewExtensionLoader, EdtExtensionLoader edtExtensionLoader, ViewExtensionLoader viewExtensionLoader, QuerySimpleExtensionLoader querySimpleExtensionLoader, MenuItemDisplayExtensionLoader menuItemDisplayExtensionLoader, MenuItemActionExtensionLoader menuItemActionExtensionLoader, MenuItemOutputExtensionLoader menuItemOutputExtensionLoader) at Microsoft.Dynamics.AX.Framework.Database.Tools.SyncEngine..ctor(String metadataDirectory, String sqlConnectionString) at Microsoft.Dynamics.AX.Framework.Database.Tools.SyncEngine.Run(String metadataDirectory, String sqlConnectionString, SyncOptions options)
This is actually a false positive for the actual error. It is true that the file referenced above isn't present but quite a few other files are also missing. If you deploy 7.3 on prem with a deployable package, there will be one file that exceed the 260 character limit for a file location causing the entire deployment to fail. In our specific environment, which uses all defaults for locations for the cluster, the specific file creation that causes the error would be:
That file location is 261 characters and the limit is 260.
The error is caused by the specific file referenced above not being there because it was never extracted from the packages.zip file. Extraction of packages.zip silently fails on the location referenced above and playbook continues forward without a complete packages directory. To address this, MS is suggesting, as a workaround, that you recreate your clusters using C:\SF as the service fabric base path rather than C:\ProgramData\SF. If you can't, or don't want to, rebuild your environments from the ground out, I have a proven work around outlined below that will work until MSFT can sort this out on their own. This has been confirmed as an issue with MS and there is a bug assigned to a development team but not sure exactly which development team.
The Local Agent installed in the cluster must be version 2.1 or higher. Please refer to https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpr... additional information.
- Use LCS to prepare package into environment. In the environment, go to Maintain, select the deployable package then click "prepare". Deployment Status will advance to preparing, downloading, downloaded then preparation finished. Wait until package has been downloaded and environment is in a preparation finished state.
- Use Event View on the orchestrator node that is primary for the bridge service in the LocalAgent Application to identify where the file was downloaded from LCS. To do this, open the event viewer then go to Applications and Services Logs > Microsoft > Dynamics > AX-LocalAgent > Operational and look for an information record that states "Asset with ID 'xxx' found in the fileshare"
- Navigate to the file share location called out in the event viewer
- Copy StandaloneSetup.zip from file share to local folder such as Documents.
- Extract StandAloneSetup.zip
- Important Note: Version numbers must be unique across all deployments so if you deploy more than 1 package in a day, please increment the last number of the sequence so each package version will be unique. Go to StandaloneSetup\StandaloneSetup-141993\Apps\AOS\AXServiceApp and open file ApplicationManifest.xml in notepad. Find element "ApplicationTypeVersion" and change the version to something 5 characters shorter than what it is. For instance, if the version is 1.0.20180725202556, change it to 1.0.201807252. Note both values. Hit ctrl + h and find/replace the old version number with the new version number for all instances in the file. Save and close the file.
- Go to StandaloneSetup\StandaloneSetup-141993\Apps\AOS\AXServiceApp\AXSF and open file ServiceManifest.xml in notepad. Hit ctrl + h and find/replace the old version number with the new version number. For instance, replace 1.0.20180725202556, with 1.0.201807252 for all instances in this file. The version number used here must match the one used in the last step. Save and close the file
- Compress StandaloneSetup\StandaloneSetup-141993
- Rename the resulting zip file as StandaloneSetup.zip
- Copy to file share location from above
- In LCS, click the "Update Environment" button.