Avatar billede lanstorp Nybegynder
23. maj 2004 - 10:50 Der er 1 kommentar og
1 løsning

Kompilere *.cs filer uden en main metode

Sidder og eksperimenterer lidt med C# kompileren, hvor koden ligger i tekstfiler i supereditoren Ultraedit.

Har det bedst med at klsserne ligger i deres egne filer. Hvordan sætte man sin kode op så en klasse kan ligge i en selvstændig fil, uden en Main metode. Ligesom Java hvor man kan kompilere til *.class filer. C# kompileren siger der ingen 'valid entery point' findes i exe filen, men vil jo heller ikke lave en exe fil, men en klasse jeg kan anvende fra en anden klasse.

P.t. har jeg kun fået hul igennem til at have alle klasserne i den samme fil.
Avatar billede dj Nybegynder
23. maj 2004 - 11:12 #1
Hvis jeg forstår dig ret, så er det du ønsker, at kompilere dine filer om til en .dll fil som du kan tilgå fra forskellige projekter.

Dette gøres ved at lave følgende kald i det bibliotek der indeholder de relevante .cs filer:

csc /t:library /Debug /FullPaths /out:MyLibrary.dll *.cs

Hvis de ligger blandet i en mappe med filer der skal indgå i andre dll'er eller exe filer, så skal du istedetfor *.cs skrive filnavnene på de aktuelle filer, f.eks:

csc /t:library /Debug /FullPaths /out:MyLibrary.dll MyClass1.cs MyClass2.cs

Begge dele vil resultere i en MyLibrary.dll fil som du kan inkludere i dine forskellige projekter, følgende er måden som du kan referere til din dll fil i forbindelse med en exe compilering:

csc /t:exe /Debug /FullPaths /out:MyProject.exe /r:MyLibrary.dll MyMainClass.cs MyForm.cs

For at det virker, skal MyLibrary.dll selvfølgelig ligge i den mappe som du kalder csc fra, altså mappen med de .cs filer som skal indgå i din exe build.

Når du har refereret til dll'en på den måde der, så kan du tilgå klasserne i den, somom de var kompileret sammen med exe filen. Bemærk at du også kan benytte /r: parameteren hvis du ønsker at referere nogle dll filer i forbindelse med build af en ny dll fil. Et andet lille tip er at du kan referere flere ved at skrive: /r:MyLibrary1.dll,MyLibrary2.dll,etc.

Held og lykke med det :)

Og btw. så er UltraEdit/Manual Compile ikke nogen dum løsning, det er personligt også en kombination jeg foretrækker fremfor VS.NET :)
Avatar billede lanstorp Nybegynder
23. maj 2004 - 11:41 #2
Tak for svaret, prøver at køre koden omkring en dll. Glæder mig der er andre der bruger Ultraedit som editor. Hvis du (eller andre) ikke kender til noget setuppet af Ultraedit, er der lidt her.

A.
Ultraedit menu: Advanced > Tool Configuration laves et nyt tool, til kompilering af cs filer. Skriv i command line:
"D:\Dev\UltraEdit_setup\MB_Kode\CompileCSharpe.bat" "%p%n"

Bat filer skal indeholde:
@Echo off
"c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.exe" ""%1.cs""
if exist ""%1.err"" type ""%1.err""

Skift stier så de passer. Nu kan man direkte kompilere cs filer fra ultraedit og få en debug besked nederst i editoren som man kan klikke på.

B.
Syntax highlightning, hent c# word file fra http://www.ultraedit.com
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