Jeg udvikler C# i Visual Studio .NET 2003. Problemet opstår når jeg compiler min kode og prøver at køre exe-filen på en computer uden .NET Frameworket installeret. Så får jeg fejlmeddelsen:
Set Registry Key HKLM\software\microsoft\.net framework\installroot to point
På Microsofts hjemmeside anbefaler de (ikke overraskende!) at jeg installerer .NET Frameworket på computeren.
Mit spørgsmål lyder:
Er der en måde at få kompileret sin kode sådan at den er uafhængigt af om .NET Frameworket er installeret eller ej? Eller kan man slet ikke udvikle i Visual Studio uden at alle andre skal have .NET Frameworket installeret for at køre ens programmer?
Jeg vil anbefale at du laver et installation projekt i din Visual Studio, hvori du embedder .Net frameworket, således at når brugeren vil installere dit program, bliver der undersøgt om frameworket ligger der, eller bliver det installeret.
I visual studio kompilerer du koden til en type maskin-kode som .NET's virtual machine forstår, ikke til gammeldags maskinekode. Derfor kræves det at .NET er installeret for at køre programmet, og det er der ikke nogen vej uden om. Dog er det ikke noget urimeligt krav at kræve at folk har .NET installeret på deres computer. Så vidt jeg ved følger det med Windows i dag og de fleste andre har jo nok fået det gennem Windows Update.
Bemærk dog at din installations fil vil vokse med ca. 23,1 MB (størrelsen på frameworket)
I .Net har du et helt base class liberary, hvordan skullene computer uden det liberary kunne kører dit program, når det ikke findes Du kan jo heller ikke kører et program i java uden at jave en java runtime installeret.
Endvidere består frameworket af runtime compileren, som netop compilere din compileret kode til "maskine kode".
Således har de opnået at alle .Net sprog bliver compileret til et fælles sprog (f.eks. din .exe fil), som af frameworket bliver compileret til maskinekode ved kørsel.
Jeg ved udemærket hvordan Visual Studio kompiler til MSIL osv... Mit spørgsmål går ikke på om hvordan der kompileres eller hvorvidt det er rimeligt at man forlanger at .NET frameworket er installeret.
Er der en måde hvorpå man kan få kompilet sin kode til "gammeldags" maskinkode som kan læses uafhængigt af .NET frameworket?
læs misbruger's 2. kommentar igen... Frameworket er som navnet antyder et framework/samling af værktøjer og klasser og den eneste/nemmeste måde at sikre dig at dine programmer kan køre på andres maskiner er at medtage frameworket i dit program...
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.