I'm currently experiencing a compilation error when attempting to publish the OIDC Client (Version 1.0.9) in our OutSystems environment.
The error details are as follows:Internal Error Compilation Error. warning CS1685: The predefined type 'System.ObsoleteAttribute' is defined in multiple assemblies in the global alias; using definition from 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscorlib.dll' referencesProxy\Extension_OIDC_Utils_proxy.cs(30,29): error CS0234: The type or namespace name 'NssOIDC_Utils' does not exist in the namespace 'OutSystems' (are you missing an assembly reference?) protected static OutSystems.NssOIDC_Utils.IssOIDC_Utils issOIDC_Utils =(OutSystems.NssOIDC_Utils.IssOIDC_Utils)ServiceLocator.GetService<OutSystems.NssOIDC_Utils.CssOIDC_Utils>(); State: Build References Proxy
This issue occurs when publishing the component in our environment, but it does not manifest when we install and publish the same component in a different environment (User Environment). We have also tried restarting the environment, but the issue persists.
Would you happen to have any insights or suggestions regarding what might be causing this issue? Your guidance would be greatly appreciated.
Thank you very much for your time and assistance. I look forward to your response.
Best regards
Thank you to everyone who investigated this issue.With the cooperation of the OutSystems support team, the issue has been resolved.
It seems that the OutSystems Platform Server Version 11.25.0 we are using was dependent on System.Memory version 4.0.1.1.By upgrading to Platform Server Version 11.31, the System.Memory assembly can be updated to its latest version, 4.0.1.2.
In other words, to avoid the compilation error we experienced, it appears necessary to upgrade the Platform Server Version.
Thank you all for your support and assistance!
Hello @Ayako Shiratori
It sounds like the error is due to a missing or conflicting reference in your OutSystems environment. The issue with the `NssOIDC_Utils` namespace suggests that the OIDC Client might not have all the right dependencies in your setup. Since it works fine in another environment, it would be a good idea to compare the installed components and versions to see if there are any differences. You might also want to try clearing your environment's cache and republishing the component. Hopefully, one of these steps will fix the issue!
こんにちは、サジドさん。
どうぞよろしくお願いいたします。
環境の再起動も試してみましたが、残念ながら問題は解決していません。また、プラットフォームのバージョンは 11.25.0 (Build 41743) です。このバージョンが問題の Forge と互換性がない可能性もあるのではないかと考えています。何かお気づきの点がありましたら、ぜひお聞かせください。
よろしくお願いします、
@SazidSorry about that; I think I missed something...
It looks like the "CryptoAPI" Forge referenced by this Forge isn’t the latest version. I’ll consider updating it and try addressing the issue accordingly.
Thank you,
No problem at all! I hope updating the "CryptoAPI" Forge will address this issue. Please let me know if you need any further information from my end to help. Best wishes!
Hello, @Sazid
In this case, to investigate the differences between the versions of dependencies used by Forge and the installed versions in the environment, I synchronized the application versions of the Personal Environment and the environment where the issue occurred, then installed the OIDC Client. As a result, the compilation error currently in question did not occur.
The current error appears to be occurring during the publishing of "OIDC_Utils (extension)." Upon examining the error details, it seems that OutSystems.NssOIDC_Utils.dll depends on a specific version of System.Memory, version 4.0.1.2, while other libraries or projects refer to a different version of System.Memory (e.g., 4.0.1.1), resulting in a version mismatch at build time.
Since the issue does not reproduce in other environments, I believe the possibility of corruption within "OIDC_Utils (extension)" itself is very low. However, could System.Memory.dll be deployed to an unexpected folder due to some other impact?
If you have any insights into whether this issue is caused by the environment or is Forge-related (though I believe this possibility is low), I would be grateful if you could share them.
Dear @Ayako Shiratori
The System.ObsoleteAttribute error suggests that there may be multiple versions of the same assembly in your environment. Check the references in Service Center > Factory > Solutions to see if any conflicts or multiple assemblies for System are listed.
Dear @Sazid , @ndy , and @João Barata ,
Thank you all for your support and cooperation.
As a result of our investigation, we found that the OutSystems.NssOIDC_Utils.dll in the OIDC Client depended on System.Memory version 4.0.1.2. However, unintentionally, our environment included an older version (4.0.1.1), which caused a version mismatch and led to the error.
To resolve this, I opened the OIDC_Lib Extension in Visual Studio and downgraded the version of System.Memory to 4.0.1.1 using NuGet, allowing the publish to the environment to succeed.
With this adjustment, the initial issue I was facing has been resolved.
One remaining question, though, is why our environment contained System.Memory version 4.0.1.1. Could it be due to dependencies from other Forge components published in the environment, or is it perhaps a part of the OutSystems Platform’s built-in features?
I am not entirely clear on the actions needed to update the version of System.Memory in our environment to 4.0.1.2. If you have any insights, I would appreciate your comments.
Thank you again for your assistance.
Best regards,
Here is an update.Today, I conducted another investigation.Inside JWT (Forge), there is JWT_Core (Extension), which also seems to use System.Memory.dll.In the latest version of JWT, System.Memory.dll 4.0.1.2 is being used.It appears that this issue may have arisen due to the outdated version of JWT.If we can update JWT to the latest version, it may be possible to publish the OIDC Client from Forge without modifications. (I’ll be testing this shortly.)