web
You’re offline. This is a read only version of the page.
close
Skip to main content
Community site session details

Community site session details

Session Id :
Finance | Project Operations, Human Resources, ...
Suggested answer

Data upgrade from AX to D365FO fails at step-3

(1) ShareShare
ReportReport
Posted on by
Hi folks!
 
I am trying to upgrade data from AX 2012 to D365FO - Development environment using Data upgrade package.
Package: AX2012DataUpgrade-10.0.37 (7068.101)
FO version: 10.0.37
 
I am getting this error, and it fails at step-3
 

Log level - Error | System.IO.FileNotFoundException: Could not load file or assembly 'Dynamics.AX.ApplicationPlatform, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
File name: 'Dynamics.AX.ApplicationPlatform, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
   at System.ModuleHandle.ResolveType(RuntimeModule module, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type)
   at System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule module, Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
   at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
   at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, Object[] attributes, IList derivedAttributes, RuntimeType& attributeType, IRuntimeMethodInfo& ctor, Boolean& ctorHasParameters, Boolean& isVarArg)
   at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes, Boolean isDecoratedTargetSecurityTransparent)
   at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeMethodInfo method, RuntimeType caType, Boolean inherit)
   at System.Attribute.GetCustomAttributes(MemberInfo element, Type type, Boolean inherit)
   at System.Attribute.GetCustomAttribute(MemberInfo element, Type attributeType, Boolean inherit)
   at System.Reflection.CustomAttributeExtensions.GetCustomAttribute[T](MemberInfo element)
   at Microsoft.Dynamics.Ax.Xpp.ReflectionCallHelper.FindMethodCore(Type type, String MethodName, Int32 parametersCount, Boolean isStatic)
   at Microsoft.Dynamics.Ax.Xpp.ReflectionCallHelper.FindStaticMethod(Type type, String methodName, Int32 parametersCount, Object[] parameters)
   at Microsoft.Dynamics.Ax.Xpp.ReflectionCallHelper.MakeStaticCall(Type type, String MethodName, Object[] parameters)
   at ScaleUnitInterop.IsScaleUnitFeatureEnabled()
   at gopts(Int32 , Char** )
   at Microsoft.Dynamics.AX.AOS.StartupInternal(String[] Arguments)
   at Microsoft.Dynamics.AX.AOS.Startup()
   at Microsoft.Dynamics.AX.AosConfig.?A0x66ed84b2.GetAosConfig()
   at Microsoft.Dynamics.AX.AosConfig.Config.InitInternal()
   at Microsoft.Dynamics.AX.AosConfig.Config.InitOnce(Boolean isOfflineMode)
   at Microsoft.Dynamics.AX.Framework.Database.Tools.LegacyCodepath.StartAosCode(SyncOptions syncOptions, String sqlConnectionString, IMetadataProvider metadataProvider)
   at Microsoft.Dynamics.AX.Framework.Database.Tools.LegacyCodepath.ExecuteWithinAOS(SyncOptions syncOptions, String sqlConnectionString, IMetadataProvider metadataProvider, Func`1 func, Action`1 errorHandler)
   at Microsoft.Dynamics.AX.Framework.Database.Tools.LegacyCodepath.RunFullTableSync(SyncOptions syncOptions, String sqlConnectionString, IMetadataProvider metadataProvider)
   at Microsoft.Dynamics.AX.Framework.Database.Tools.SyncEngine.AdditiveAllTableSync()
   at Microsoft.Dynamics.AX.Framework.Database.Tools.SyncEngine.AdditiveTableSync()
   at Microsoft.Dynamics.AX.Framework.Database.Tools.SyncEngine.RunSync()
   at Microsoft.Dynamics.AX.Framework.Database.Tools.SyncEngine.Run(String metadataDirectory, String sqlConnectionString, SyncOptions options)

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM//Software//Microsoft//Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM//Software//Microsoft//Fusion!EnableLog].

Failed operation step '/DataUpgrade/PreReqs/AdditiveDbSync'
Process 'K://AosService//PackagesLocalDirectory//bin//SyncEngine.exe' failed with exit code -1; see error logs for details.
   at Microsoft.Dynamics.Servicing.DataUpgrade.Operations.Operation.RunProcess(String fileName, ArgumentsBuilder args)
   at Microsoft.Dynamics.Servicing.DataUpgrade.Operations.OperationStep.Execute()

 

 

Thanks.

I have the same question (0)
  • Suggested answer
    Hana Xue Profile Picture
    Microsoft Employee on at
    Data upgrade from AX to D365FO fails at step-3
    Hi,
    You mentioned step 3, but we don't know what step it is. For reference, here is the reference document: Upgrade from AX 2012 to finance and operations - Finance & Operations | Dynamics 365 | Microsoft Learn You can also try again according to the steps mentioned in this document: Troubleshoot upgrades to Dynamics 365 Finance + Operations self-service environments - Finance & Operations | Dynamics 365 | Microsoft Learn
    Also regarding this error you can check out the old thread if it helps: Solved: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Xrm.Sdk.Deployment, Version=9.0.0.0 (dynamics.com)
    Best Regards,
    Hana
  • Spencer Wallman Profile Picture
    4 on at
    Data upgrade from AX to D365FO fails at step-3
    I know this is pretty old, but did you ever figure out the solution to this?  I'm running into the same error message during step 3 (except w/10.0.42).
  • Suggested answer
    Saif Ali Sabri Profile Picture
    2,351 Super User 2025 Season 2 on at
    Data upgrade from AX to D365FO fails at step-3
    Response 1     “AI was used in this reply”.
    This error during Step 3 of the AX 2012 to D365FO data upgrade typically stems from a missing or incorrectly referenced assembly, specifically:
    Dynamics.AX.ApplicationPlatform, Version=0.0.0.0
    This happens most often in development or Tier-1 environments, where some DLLs might not be deployed or accessible during the AdditiveDbSync step of the data upgrade process.

    Root Cause
    The error indicates the SyncEngine.exe is trying to load a required assembly (Dynamics.AX.ApplicationPlatform.dll) but cannot find it. This assembly is generally built as part of the AX 2012 model compilation and referenced in custom upgrade scripts.

    Solution
    Follow the steps below to resolve the issue:

    1. Recompile AX 2012 Models (in legacy environment)
    Ensure that all models in your AX 2012 source environment (prior to data upgrade export) are:
    • Compiled successfully.
    • Full X++ CIL is compiled.
    • No missing references.
    ⚠️ If a custom model references Dynamics.AX.ApplicationPlatform.dll, it must be part of the upgrade package.

    2. Check for Missing DLLs in the Upgrade Package
    Check your extracted upgrade package folder, typically at:
    makefile
    CopyEdit
    K:\AosService\PackagesLocalDirectory\bin\
    Ensure this file exists:
    CopyEdit
    Dynamics.AX.ApplicationPlatform.dll
    If not, retrieve it from the AX 2012 AOS bin folder or export again using the latest Data Upgrade tool for your version.

    3. Manually Copy the Missing Assembly (Workaround)
    Only for dev/test environments.
    Copy the missing DLL (Dynamics.AX.ApplicationPlatform.dll) from:
    Source (AX 2012 AOS machine):
    arduino
    CopyEdit
    C:\Program Files\Microsoft Dynamics AX\60\Server\DynamicsAX\bin\
    To target (D365FO dev box):
    makefile
    CopyEdit
    K:\AosService\PackagesLocalDirectory\bin\
    Then restart the D365FO environment services or re-run the DataUpgrade script from step 3.

    4. Check for Custom Code Dependencies
    If your AX 2012 environment had custom upgrade scripts or logic relying on Dynamics.AX.ApplicationPlatform, ensure those scripts and dependencies are:
    • Present in the DataUpgrade model.
    • Properly migrated during the model store export.

    5. Rebuild DataUpgrade Model in D365FO
    Use Visual Studio on the D365FO dev VM to:
    • Open the DataUpgrade model.
    • Rebuild the model and its references.
    • Deploy it using Build Models and Synchronize Database.

    Optional: Enable Assembly Binding Logging for Deeper Troubleshooting
    You can enable fusion logging to identify all binding issues:
    reg
    CopyEdit
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion]
    "EnableLog"=dword:00000001
    "LogFailures"=dword:00000001
    "ForceLog"=dword:00000001
    "LogPath"="C:\\FusionLog"
    Create the log directory manually. This will help identify which file is missing and from where it is expected.

    Final Step: Re-run the Data Upgrade
    Re-run the data upgrade from step 3 using:
    powershell
    CopyEdit
    DataUpgradeService.ps1 -Step 3

    📌 Summary
    • This is caused by a missing DLL during the AdditiveDbSync step.
    • Confirm that all assemblies used in upgrade scripts are present.
    • Manually copy Dynamics.AX.ApplicationPlatform.dll if necessary.
    • Ensure your upgrade package and models are correctly built.
    • Re-run the process after addressing DLLs and references.

    Response 2   “AI was used in this reply”.
    This error typically occurs during Step 3 of the AX 2012 to D365FO data upgrade process when the SyncEngine.exe attempts to perform Additive Database Sync (/DataUpgrade/PreReqs/AdditiveDbSync) and fails to locate a required .NET assembly, specifically:
    Could not load file or assembly 'Dynamics.AX.ApplicationPlatform'
    Root Cause
    The error indicates that the SyncEngine.exe process is attempting to load AX 2012 assemblies (like Dynamics.AX.ApplicationPlatform.dll), but cannot find them. This is often due to:
    • Missing or misconfigured AX 2012 binaries during the metadata sync step.
    • Incorrect AX 2012 model store metadata directory.
    • Improper setup of the DataUpgrade service model in your development environment.

    Solution Steps
    1. Confirm AX 2012 Client Binaries Are Present
    Ensure that the AX 2012 binaries (like Dynamics.AX.ApplicationPlatform.dll) are available and accessible to the upgrade tool.
    • These are typically required during data upgrade steps that rely on legacy codepaths.
    • You may need to copy the AX 2012 binaries into the bin directory or ensure that they are accessible via the PATH.
    Check:
    • Dynamics.AX.ApplicationPlatform.dll should be part of your AX 2012 binaries (Client/bin folder).
    • Place them where SyncEngine.exe can access them:
      K:\AosService\PackagesLocalDirectory\bin\

    2. Validate the MetadataDirectory Path
    Ensure the path to the AX 2012 metadata directory is correctly configured in the upgrade process.
    • If using a config or parameter to define the metadata directory, ensure that directory contains:
      • AX 2012 Model Store metadata
      • Correctly structured model files
    Example of a correct structure:
    php-template
    CopyEdit
    <MetadataDirectory>

    ├── AxModel
    │   ├── AOT
    │   └── ModelManifest.xml

    3. Check AX 2012 Model Store Export
    You must use the AX 2012 Data Upgrade toolset (AX2012DataUpgrade-10.0.37 or 10.0.42 depending on your environment) to export the model store correctly.
    Run:
    powershell
    CopyEdit
    .\AXModelUtil.exe -export
    Ensure it was successful and the metadata is complete.

    4. Clean and Rebuild the D365FO Environment
    • Perform a full database sync in Visual Studio.
    • Rebuild all models (Build > Clean Solution, then Build > Rebuild Solution)
    • Restart the AOS service.

    5. Rerun the Data Upgrade Step
    Run the failed step manually for testing:
    cmd
    CopyEdit
    SyncEngine.exe -syncMode=AdditiveSync -sqlConnectionString="<YourConnectionString>" -metadataDirectory="<YourAX2012MetadataPath>"

    Optional: Enable Assembly Bind Logging (for further debugging)
    Only if needed, enable assembly bind failure logging to diagnose where it's looking:
    Registry Key:
    csharp
    CopyEdit
    [HKLM\Software\Microsoft\Fusion]
    DWORD EnableLog = 1

    Final Checklist
    Check Description
    AX 2012 binaries present Especially Dynamics.AX.ApplicationPlatform.dll
    Correct metadata directory Matches expected structure
    Full model store export Performed via AXModelUtil
    Local Packages bin updated Place DLLs if needed
    SyncEngine.exe config Uses correct paths

    🔁 If Problem Persists
    If you're running version 10.0.42, ensure you're using the matching DataUpgrade package:
    • Use AX2012DataUpgrade-10.0.42.* package instead of 10.0.37.
    Mismatch between package version and FO version can also cause this exact error.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Pallavi Phade – Community Spotlight

We are honored to recognize Pallavi Phade as our Community Spotlight honoree for…

Leaderboard > Finance | Project Operations, Human Resources, AX, GP, SL

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 696 Super User 2025 Season 2

#2
CA Neeraj Kumar Profile Picture

CA Neeraj Kumar 569

#3
Martin Dráb Profile Picture

Martin Dráb 551 Most Valuable Professional

Last 30 days Overall leaderboard

Product updates

Dynamics 365 release plans