Avatar billede marvinq Nybegynder
15. september 2010 - 13:23 Der er 11 kommentarer og
1 løsning

Entrypoint i classlibrary

Hej eksperter,

Jeg er kommet lidt i en knibe, tror jeg.

Jeg har oprettet et class library i C# gennem Visual Studio, som jeg benytter i et ERP-system. Det hele fungerer fuldstændig som det skal og der er ingen ko på isen.

Men nu ønsker jeg så at distribuere denne .dll fil, så jeg kan få glæde af funktionaliteterne på andre computere med samme ERP system, men når jeg ønsker at registrere dll-filen, så får jeg en besked om at dll filen ikke indeholder et entrypoint... Hvad gør jeg lige her?? Jeg har læst mig lidt til at det måske endda ikke engang findes?? Men hvordan kan jeg så distribuere min dll-fil??

Ser meget frem til at høre fra jer.


/MHQ
Avatar billede aaberg Nybegynder
15. september 2010 - 13:31 #1
Hvad mener du når du skriver at du "registrerer" dll filen.

Et entry-point er det som er forskellen på en exe fil og en dll. En exe fil har et entry-point, og er derfor eksekverbar. En dll har ikke det, og kan derfor ikke køres som et program i sig selv.

Normalt vil du bruge en dll fil fra et program (en exe) eller en webside. Du behøver ikke at registrere den nogen steder.
Avatar billede bennytordrup Nybegynder
15. september 2010 - 13:32 #2
Hvad mener du med entrypoint. Hvis ERP-systemet benytter den som COM objekt, så skal du sørge for, at klasserne bliver eksporteret fra dit class library som COM classes også.

Det giver et entrypoint, som du kan registrere via regasm.
Avatar billede marvinq Nybegynder
15. september 2010 - 13:36 #3
Ja hvad ved jeg :)

Når jeg laver opslaget fra mit ERP-system, så får jeg en liste over registrerede dll filer i systemet, og der skal min dll fil indgå i.

Ja, der er vist tale om COM objekter. Men hvordan gør jeg så?? Det virker jo fint på min egen, fordi også er her jeg har mit visual studio kørende.

På forhånd tak
Avatar billede aaberg Nybegynder
15. september 2010 - 13:46 #4
Jeg tror det der menes, er at du skal registrere dll'en i web.config filen for websiden.

Det der skal tilføjes er noget lignende:
<add assembly="dindll.dll, Version=1.0.0.0, Culture=neutral, PublicKeyToken="PD773DHBFGS88" />

og den skal tilføjes i din <compilation><assemblies> tag

Se eventuelt i web.config filen for det system du har liggende lokalt, om hvordan det skal se ud.
Avatar billede marvinq Nybegynder
15. september 2010 - 13:50 #5
Hej,

Det kan være det er mig der er galt på den, men er det ikke kun hvis der er tale om hjemmesider?? Det er det ikke her.

/MHQ
Avatar billede marvinq Nybegynder
15. september 2010 - 13:57 #6
Hej,

Har lige læst lidt videre på det. Det handler om at det er en COM DLL og her skal jeg have registreret DLL filens interface i "registret".

Det er vel noget som gøres med regsvr32. Det er netop det jeg har prøvet, men den siger jeg mangler et entrypoint. Jeg tror bennytordrup havde fat i noget, men hvordan gør jeg det??


/MHQ
Avatar billede bvli Praktikant
15. september 2010 - 14:44 #7
Avatar billede marvinq Nybegynder
17. september 2010 - 12:53 #8
Hej,

Jeg tror bvli har fat i det rigtige. Hvad er mindste fællesnævner for at få fat på Regasm.exe?? skal jeg have installeret .NET framework, og er der krav for minimum versionsnummer eller er det med i alle?

/MHQ
Avatar billede bvli Praktikant
17. september 2010 - 13:40 #9
Den er med i alle versioner.

Men du skal som udgangspunkt have installeret .NET-frameworket i den version dit program er skrevet i. (Der er måder at omgå det på, men det er efter min mening ikke umagen værd)
Avatar billede marvinq Nybegynder
21. september 2010 - 14:20 #10
Så lykkedes det sgu. Lækkert!

Jeg har bare lige en enkelt ting. Det er sikkert et dumt spørgsmål, men forestil jer en server og en række klienter med det her ERP program. Hvis nu alle klienterne skal kunne bruge de her funktionaliteter, er det så virkelig nødvendigt at registrere på alle klienterne? Eller kan man på en eller anden måde gøre det på serveren alene?? Altså således at assemplyen deles over hele domænet.

Kan ikke forstille mig hvordan det kan gøres, men kan det??

På forhånd tak.
Avatar billede bvli Praktikant
21. september 2010 - 14:33 #11
Som et udgangspunkt: Nej.

Om du så implementerer det som DCOM-komponenter skal de stadig registreres på den maskine som skal instantiere et object af typen.

Men på den anden side, så kender jeg jo ikke lige dit erp-system og ved ikke om du evt. kunne afvikle funktionaliteten server-side og så sende det ud til klienterne via eksisterende programmel (browser eller anden klient).

Jeg satser på at det var regasm der løste dine problemer og lægger et svar :)
Avatar billede marvinq Nybegynder
21. september 2010 - 15:12 #12
Okay, jamen det var som jeg troede.

Præcis. regasm:)

Takker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester