15. september 2010 - 13:23Der 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??
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.
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.
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??
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?
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)
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??
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 :)
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.