16. juli 2004 - 10:30Der er
60 kommentarer og 1 løsning
Kompileringsproblem med definitioner
Når jeg prøver at compilere hele mollevitten, så skriver den: "The namespace 'New' already contains a definition for 'FtpC'". Men jeg har ikke flere filer, af samme navn i workspacet. Skal jeg ind i en fil, og slette nogle oplysninger, som så bliver opdateret ved en ny compilering, eller skal jeg bare fysisk slette nogle filer i biblioteket? Eller hvordan skal dette problem klares?
Jeg tror, at problemet opstod, fordi jeg oprettede nogle nye aspx-filer ved at kopiere nogle eksisterende aspx-filer i projektet, og så omdøbte jeg dem derefter. Derfor kunne jeg tro, at der nok blev holdt styr over filer og navne i projektet i en indstilling i projektet et eller andet sted.
Men hvad mener du helt precist med klasser/interfaces/structs/enumerations i filerne? Er det en opremsning du skrev? Så kan det kun være klasserne...men det er jo netop dét, som spørgsmålet her går ud på ? ;-)
hvis det er et projekt du har oprettet i vs studio, så vær sikker på at der ikke ligger en dll i bin biblioteket, med et andet navn, men som indeholder en tidligere kompileret version af koden... Det kan godt fremkalde det ovenstående...
nå, nu går den da helt amok. Nu kan jeg ikke engang starte min webside op. Den skriver: " Parsefejl Beskrivelse: Der opstod en fejl under parsing af en ressource, der er påkrævet ved behandling af denne anmodning. Læs følgende detaljer om parsefejlen, og foretag de nødvendige ændringer af kildefilen. Meddelelse om parsefejl: Typen 'New.Global' kunne ikke indlæses. Kildefejl: Linje 1: <%@ Application Codebehind="Global.asax.cs" Inherits="New.Global" %> Kildefil: C:\Inetpub\wwwroot\New\global.asax Linje: 1 " ?
Det ville jeg også tro...men hvis det er 'New.pdb' i ...New/bin, så løser det ikke problemet. Faktisk bliver der ikke oprettet en ny 'New.pdb' ved kompilering...?
Mit namespace hedder 'New'. Når den siger, at der findes flere filer af samme navn, skal jeg så ikke gå ind i 'New.csproj', og checke for om filnavnene står der flere gange? Og hvis de så gør, så slette så de kun er angivet 1 gang hver?
cogitans>> som der er nævnt flere gange, så har navnene på dine filer INTET (!!!!!!) at gøre med dette problem du har her. Der står ingen steder i din fejlmeddelelse at fejlen ligger i at to filer hedder det samme, til gengæld er det typen FtpC som findes mere end en gang, som arne_v også har prøvet at skære ud i pap et par gange efterhånden.
Dine filer kunne lige så godt hedde mnbxcvmnbcvoiweruio.cs, cxvieiewec.cs, sdfmemewqjk.cs og erjkwemmwjkwmc.cs. Det er hvad der står I filerne der er vigtigt, ikke hvad de hedder. Det er ikke ligesom i Java hvor at filerne skal hedde det samme som typen der står i dem osv.
Så når meddelelsen under kompilering lyder: "The namespace 'New' already contans a definition for 'FtpC'", så har det altså intet at gøre med, at der optræder det samme navn (=definition) flere steder?
#region Web Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.components = new System.ComponentModel.Container(); } #endregion } }
cogitans>> Når kompileren kommer med den fejlmelding følger den vanligvis også op med to (eller flere) referencer til filer, hvor typen er defineret. Du skulle være i stand til at klikke på disse referencer i dit output-vindue, og så kan du hvilke steder i dine filer det drejer sig om. Såh.... kig i dit output-vindue istedet for din taskmanager - så kan du se det.
Preparing resources... Updating references... Performing main compilation... c:\inetpub\wwwroot\new\downloadedf.aspx.cs(19,15): error CS0101: The namespace 'New' already contains a definition for 'FtpC' C:\Inetpub\wwwroot\New\Copy of Copy of Copy of DirectoryBrowser.aspx.cs(15,15): (Related location) . . .
Build complete -- 17 errors, 0 warnings Building satellite assemblies... Satellite assemblies could not be built because the main project output is missing.
ah...ved nogle af filerne står der "using New;", og ved andre står det ikke. Skal det stå der, når flerne er en del af namespacet New, eller skal jeg slette det?
c:\inetpub\wwwroot\new\downloadedf.aspx.cs(19,15): error CS0101: The namespace 'New' already contains a definition for 'FtpC' C:\Inetpub\wwwroot\New\Copy of Copy of Copy of DirectoryBrowser.aspx.cs(15,15): (Related location)
Du har den samme type defineret i både downloadedf.aspx.cs og i Copy of Copy of Copy of DirectoryBrowser.aspx.cs.
Slet eller udkommenter den i Copy of Copy of Copy of DirectoryBrowser.aspx.cs (det er umiddelbart den der ser ud til at være mindst interessant :o)
Næh, det hjalp ikke lige i første omgang. Hvad med den linie, som siger: "Satellite assemblies could not be built because the main project output is missing."? Hvor kan man checke for "main project output"?
snepnet: "Slet den"? Hvad er "den"? Er det typen? Og hvad hentyder du i så fald til? Filerne "copy of Copy...." findes ikke i mit projekt i Visual Studio. For de filer har jeg omdøbt, så de f.eks. hedder 'FtpC'. Men e findes dog i bibliotekstrukturen på harddisken. Skal jeg fysisk slette dem?
Du kan jo også bare starte et helt nyt projekt, og så bare hive de ting ind fra det gamle som du skal bruge - og så lade alt det der copycopycopy blive i det gamle projekt.
Så klager Output-vinduet over, at den ikke kan finde filerne: " ------ Build started: Project: New, Configuration: Debug .NET ------
Preparing resources... Updating references... Performing main compilation... error CS1504: Source file 'C:\Inetpub\wwwroot\New\Copy (2) of Copy (2) of Copy of Copy of Copy of DirectoryBrowser.aspx.cs' could not be opened ('Den angivne fil blev ikke fundet. ') c:\inetpub\wwwroot\new\downloadedf.aspx.cs(18,15): error CS0101: The namespace 'New' already contains a definition for 'FtpC' . . . " Så hvad gør jeg nu?
Jo, men jeg er lidt påpasselig mht. at begynde på et nyt projekt. Jeg er ikke sikker på, at jeg får alle de nødvendige oplysninger med over i det nye projekt (gamle erfarnger er skyld i min holdning her ;-) ).
Hvis du klikke på en eller anden fil under dit projekt, kan du se en knap i din solution explorer som giver en mouseover hvor der står show all files. Klik på den, og så kan du se alle filer der er tilknyttet. (du får et lille + til ventre for dine aspx-filer mv. og hvis du klikker på det kan se ressourcefil, og codebehindfil).
De kan ikke ses i projektet. Jeg kopierede dem som sagt ind i projektet (da kunne de ses), og så omdøbte jeg em (så kunne de ikke ses). Men da VS brokker sig, må der (som jeg har været inde på tidligere) være nogle referencer til filer med disse gamle navne nogle steder. Det var disse referencer, jeg ville slette, da jeg f.eks. skrev teksten i "16/07-2004 13:10:28"...??
Ellers kan du altid åbne din projektfil (den der hedder csproj som extension). I den kan du se hvad der er af referencer, hvilke filer der er inkluderet i projektet mv, og du kan sagtens redigere den manuelt, hvis det skulle være.
Genialt! Nu kan jeg konkret se, hvilke fler, der er brug for. Som eksempel står der: -FtpC.aspx --Copy of copy...of DirectoryBrowser.aspx.cs (denne linie har et fejlikon foran sig) --FtpC.aspx.cs
Så her er beviset for, at det er "copy of copy of"-flerne, der er skyld i problemet. Men hvad gør man så?
Der ligger ikke nogen New.csproj inde i VS, men det gør der på harddiskens indhold. I den står copy of copy...-filerne også. Skal jeg så bare slette referencerne her?
Hvorfor dog det? Det var da dig, som foreslog det med .csproj-filen, hvlket var det jeg efterlyste lige fra begyndelsen af, og som løste problemet....?
Det er rigtigt, at der er mange, som har prøvet på at gve en forklaring. Der er bare ikke nogen, som har fulgt min anvisning/spørgsmål bortset fra dig. Og det var jo også min anvisning/spørgsmål, som var kilden til problemet. Så derfor må det da være ret og rimeligt, at personen, som følger anvisningerne (og ikke mindst netop derfor løser problemet), skal have pointene. Og denne person er snepnet ;-)
Reelt har dit problem bestået af 3 del problemer: 1) hvad betyder fejlen (korrekt svar er at FtpC har været defineret flere steder) 2) hvordan finder man de filer hvor den er defineret 3) hvordan får man ryddep op i VS projektet
Vi er mange som har svaret på #1. Men snepnet har hjulpet dig hele vejen igennem 2 og 3 også, så han har da fortjent pointene.
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.