Fake reference needed to prevent a crash calling an extension

We are developing an application that is using several extensions. 

These extensions all use a shared library.

Recently we experienced a peculiar incident.

We have the following architecture:

We have two e-spaces connected to an extension called MoveIn_Proxy.

One is a functional component ECO_EDSN_Consumer, the other one is a testtool called TMT_EU.

E-spaces calling the MoveIn_Proxy extensions via the ECO_EDSN_Consumer espace produce an error, except for the TMT_EU e-space performing an identical call. The only difference is that the later one can also call the MoveIn_Proxy directy via another action, which also goes well.

The error is:

[1] The type initializer for 'ssECO_Edsn_Consumer.RssExtensionMoveIn_v2_Proxy' threw an exception.
   at ssECO_Edsn_Consumer.RssExtensionMoveIn_v2_Proxy.MssMoveIn(HeContext heContext, String inParamCTS_Url, String inParamCertificate, Int32 inParamTimeOut, Boolean inParamDebugging, IRecord inParamRequestStructure, IRecord& outParamResponseStructure, IRecord& outParamExceptionMessage, String& outParamDebugLog)

[2] Method not found: 'Void Eneco.EDSN.Shared.EDSNProxyBase`1..ctor(System.String, AutoMapper.IConfigurationProvider)'.
   at OutSystems.NssMoveIn_v2_Proxy.CssMoveIn_Implementation..ctor()
   at OutSystems.NssMoveIn_v2_Proxy.CssMoveIn_v2_Proxy..ctor()
   at ssECO_Edsn_Consumer.RssExtensionMoveIn_v2_Proxy..cctor()

This error could not be solved by compiling or republishing the e-spaces in the correct subsequent order

The only way we could solve this is by adding a fake reference to the MoveIn_Proxy extension in the e-spaces calling the ECO_EDSN_Consumer espace.

Why do we need this fake reference, and is there any other way to solve this issue?

Hi Ruud,

What happens if you first Publish the consuming eSpace with reference to the Extension, and after verifying it works, publish it again but without the reference? I'm asking because it sounds like a versioning problem; I've seen in the past that sometimes Extension DLLs weren't refreshed properly.

Yes, we tried that, but after removing the reference and republishing it, it failed again.