I previously wrote about this tricky error that that cropped up in the Dynamics AX R3 CU8 demo image. That problem was due to the CRT configuration section missing from the default POS.exe.config file and I gave a pretty simple workaround.
We recently had the same error in the CU9 version of the demo image that was recently released, but the root cause is quite different.
The symptoms are the same: you can log into EPOS with no problems, everything works until you add an item to the transaction and then you get this error: “The price cannot be calculated for the item. Please manually enter the correct price.”
This problem is caused by a late post-CU9 hotfix that was applied to the demo image. This was a hotfix to address a bug in a common MPOS scenario and it was applied to all of the Retail components using the standard AX updater.
However, the online store that is also on the same machine was not redeployed. This redeployment is the only process that updates certain DLLs in the Global Assembly Cache (GAC). Since this was not done, the DLLs in the GAC are still the original CU9 versions.
This would normally not be a problem because EPOS doesn’t use the GAC. However, if certain DLLs are in the GAC, EPOS will try to use them. This causes a DLL mismatch and the pricing engine immediately fails when it is called.
In a typical environment, EPOS would never be installed on the same machine as the online store so this really is an “edge case” arising from the all-in-one demo image that we provide.
We are working on correcting this for future a future version of the demo image. However, if you don’t want to wait for that version or if you’ve already deployed a demo image, you can utilize this workaround.
This simple workaround is to manually register certain AX for Retail DLLs into the GAC. Here are the specific instructions.
- Download the attached file and extract it to a temporary folder on your image.
- Launch an elevated Powershell console in the same folder.
- Execute the script: .\GacRetailDLLs.ps1
You should get a bunch of “Assembly successfully added to the cache” messages. The next time you launch EPOS the pricing engine should now work.
Note: We haven’t done a full end-to-end test on the Online Store after GAC’ing the DLLs. If you’re using the image for testing of the Online Store you will want to validate that things still work properly.