difi / sikker-digital-post-klient-dotnet

.Net klient for integrasjon mot digital post til innbyggere
http://begrep.difi.no/SikkerDigitalPost/
Apache License 2.0
11 stars 6 forks source link

Problemer med å legge til flere nuget pakker #167

Closed fmj closed 8 years ago

fmj commented 8 years ago

Vi skal bruke oppslagstjeneste og sikker digitalpost. Har lagt til pakkene fra nuget som følger:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="difi-oppslagstjeneste-klient" version="5.1.5952.22633" targetFramework="net45" />
  <package id="difi-sikker-digital-post-klient" version="1.6.5962.22680" targetFramework="net45" />
</packages>

Etter å ha oppdatert pakkene til siste versjon så får jeg følgende feil: image

Det ser ut som oppslagtjeneste biblioteket er linket mot en annen versjon av Difi.FellesUtility enn Difi.SikkerDigitalPost.Klient slik at det ikke er mulig å bruke begge nugetpakkene samtidig:

Oppslagstjeneste: image

SikkerDigitalPost: image

Er det mulig å få harmonisert pakkene slik at de bruker samme fellesbibliotek eller er det nuget som har et problem?

asjafjell commented 8 years ago

Harmonisering pågår, så en fiks på dette kommer snarlig. Bare følg med på dette issuet, så får du beskjed når det er fikset.

fmj commented 8 years ago

Ser at grunnen til at det ikke fungerer er at dere har endret navn til engelsk: image

Hvor lang tid tar en fiks @asjafjell ?

fmj commented 8 years ago

Det ser ut som det eneste som må til er å endre denne baseklassen til den nye versjonen. Er dette noe som kan fikses relativt kjapt?

image

asjafjell commented 8 years ago

Problemet her er at vi har lastet inn .dll feil i .nuget-pakkene, slik at avhengighetene blir implisitt. Dette fører til runtime-feil. Vi kommer til å sørge for at avhengighetene er eksplisitte, slik at man kan se at de er avhengig av forskjellige pakker. Dette blir fikset så snart som mulig.

fmj commented 8 years ago

Vi er nødt til å ha oppslagstjenestedll, utsending og felleskomponenter lastet inn i samme prosjekt. Det er da viktig at det er samme felleskomponent som er i bruk for både oppslagstjeneste og utsending. Det er mao viktig å endre baseklassen for miljø til ny versjon av oppslagstjeneste slik at dette kompilerer. Usikker på hva du mener med kommentaren over.. Jeg vil ikke tro at det hjelper å sette eksplisitte avhengigheter da det ikke er lov å laste samme dll 2 ganger som avhengighet til et prosjekt.

asjafjell commented 8 years ago

Jeg skjønner problemstillingen og det du sier er delvis rett. Det er ikke mulig å direkte laste inn to dll-er i samme prosjekt. Men ved å sette eksplisitte avhengigheter på SDP og OT så kan vi sette en range med versjoner som godtas. I ditt tilfelle vil ikke dette fungere, og da må vi se til andre løsninger.

Jeg var litt uklar når jeg sa definitivt ja til harmonisering av avhengigheter, for dette blir nok ikke gjort til enhver tid. Det vil være tidspunkt hvor de ikke er like. Heldigvis er det en løsning for dette, og det er å legge inn aktuell .dll i GAC. Test gjerne oppskriften på msdn.microsoft.com og kom med tilbakemelding.

fmj commented 8 years ago

Da går det slik:

image

Begge assemblies lagt i gac.

fmj commented 8 years ago

Tror uansett at det vil være problemer med å laste 2 versjoner av samme dll i samme appdomene. Kan du bare bygge oppslagstjenesten med rett versjon av baseklasse for miljø (den engelske) og gi meg en ny dll? Forøvrig så er det nok en tanke å prøve å sørge for at felleskomponenter er bakoverkompatible..

asjafjell commented 8 years ago

Det finnes mange eksempler på biblioteker som har avhengigheter som linker til inkompatible versjoner av et bibliotek, så dette problemet vil du kunne treffe på andre steder. Man kan aldri vite kombinasjonen av biblioteker som blir brukt og det kan aldri være et krav at alle skal være i samme versjon til enhver tid. Hvorfor det ikke fungerer for deg er litt uklart. Det er mulig det må litt mer konfigurasjon til.

Når det er sagt så har vi gjort alle bibliotekene eksplisitt avhengige, og da har dette løst seg i ditt tilfelle. Oppgrader til nyeste versjon av SDP og OT og gi tilbakemelding på om det fungerer.

fmj commented 8 years ago

Da fungerer det som det skal (i hvert fall kompileringsmessig). Det som skulle til var at denne baseklassen ble endret:

image

Det bør da bare være og lukke saken..