Home > Forum > Plugins > SDK & Satellite Assemblies

SDK & Satellite Assemblies
0

Hi all!

I am getting a strange warning when deploying a second SDK plugin package to customer environment (see screenshot).

The background information is: Both SDK plugins need System.Text.JSON namespace for serializing / deserializing JSON objects, which requires a bunch of satellite assemblies to be packaged also.

These assemblies are added to each package with a custom Powershell script and have exactly the same version in both packages.

Why is Webcon complaining here (since versions are identical) and how can we guarantee plugin functionality of both packages, even if they are using different versions of these satellite assemblies?

This could easily happen, if some developer decides to update packages to new version in NuGet package manager...

What is the suggested Webcon-way here?

By the way, deploying to GAC is no option, since we are also using SaaS (no server access or admin rights).

Thanks a lot in advance & best regards, Nik

Hello Nikolaus,

This warning means that we found an assembly with exactly the same full assembly name but with different content (based on the hash of the file) in a different package.

.net works by simply loading one assembly with a specific full assembly name, when trying to load another it assumes the package is already loaded and will skip it.

However, there's a good chance that the packages will still work fine despite this warning, but you have to remember that always the first plugin you run will determine which file has been loaded. And if both of these files are compiled with different code, it can cause errors or malfunction, such as missing some method or different logic.

Updating references with NuGet shouldn't cause this problem, most packages are versioned there.

MVP

Hi Nik,

there's also the option, that you are adding a assembly which is already used by BPS Portal.

For example there's the System.TextJson. 6.0.6..... file in the BPS portal

That's the reason why I'm trying to use the same versions as they are deployed by BPS portal and I don't copy those assemblies to the generated .zip file.
I'm using this script to get get the file names, so that I can exclude them:
# update array by executing this on the server to ignore all existing files.
# $files = Get-childitem -Path "C:\Program Files (x86)\WEBCON\WEBCON BPS Portal\*.dll"
# $files | % {"'$($_.Name)',"} | clip

The only problem one can encounter if one is using a third party SDK which uses the same assemblies but in a different version.
Up until now, I didn't ran into any issues.

If you would have been on the WEBCON Day you could have gone to the Expert Zone with this and other questions. ;)

Best regards,
Daniel

In reply to: Daniel Krüger (Cosmo Consult)

Hi Nik,

there's also the option, that you are adding a assembly which is already used by BPS Portal.

For example there's the System.TextJson. 6.0.6..... file in the BPS portal

That's the reason why I'm trying to use the same versions as they are deployed by BPS portal and I don't copy those assemblies to the generated .zip file.
I'm using this script to get get the file names, so that I can exclude them:
# update array by executing this on the server to ignore all existing files.
# $files = Get-childitem -Path "C:\Program Files (x86)\WEBCON\WEBCON BPS Portal\*.dll"
# $files | % {"'$($_.Name)',"} | clip

The only problem one can encounter if one is using a third party SDK which uses the same assemblies but in a different version.
Up until now, I didn't ran into any issues.

If you would have been on the WEBCON Day you could have gone to the Expert Zone with this and other questions. ;)

Best regards,
Daniel

Hi Daniel!

Thanks a lot for the info. It is good to know that there are other ways. Unfortunately I don't have access to all systems, because some of them are running in SaaS-mode. So I have no control over the installed versions of these assemblies, that's why I am providing them by myself, this seems to be safer for me.

> If you would have been on the WEBCON Day you could have gone to the Expert Zone with this and other questions. ;)

Yes, sorry this time that was no option, but I am sure we will see us next time ;-)

Best regards, Nik