2009-06-12 8 views
43

Otteniamo il messaggio di errore sopra riportato sul nostro server di build, quando costruiamo la soluzione o il progetto specifico a cui si riferisce l'errore.TFS Build server - CSC: errore fatale CS2008: Nessun input specificato

Possiamo costruire la soluzione senza problemi utilizzando Visual Studio (anche sul server di build), tuttavia non riesce con l'errore sopra durante l'esecuzione di msbuild.

Qualsiasi idea?

risposta

44

Ho trovato la soluzione.

C'è un "bug" in msbuild, che si traduce in errore quando non ci sono file sorgente nel progetto. Ad esempio Filename.cs.

Il nostro progetto aveva solo xml e altri tipi di file.

Appena aggiunto un file cs vuoto e ha funzionato.

+0

+1 (Sono venuto qui cercando una risposta migliore, ma suppongo che se tutto questo è possibile, così sia!). Ancora presente in 3.5 SP1. MS persone non impegnate ad aspettare che Connect si aggiorni, per favore nota! –

+0

Ho dovuto aggiungere un metodo principale nella mia classe vuota, suppongo che la persona che ha aggiunto il progetto ne abbia fatto un'app per console. – aceinthehole

+4

assicurati solo che nel file .cs vuoto inserisci un commento/link a questa domanda - o qualcuno in futuro sarà ugualmente confuso! –

9

Ho anche ricevuto questo messaggio di errore quando "costruivo" un progetto che non aveva alcun file * .cs ... ma lo facciamo abbastanza spesso per progetti SharePoint che sono solo XML. il progetto VS è solo per organizzare alcuni dei documenti XML. Per farla breve, il problema era che esisteva il file AssemblyInfo.cs. Dopo aver aggiunto alcune informazioni sull'assembly alle proprietà del progetto, voilà! Ha funzionato. Quindi immagino, sì, hai bisogno di un file .cs per compilare effettivamente qualcosa, ma AssemblyInfo.cs è sufficiente.

+0

Questo è un modo migliore per risolvere il problema, ma forse non dovremmo usare i file .csproj in primo luogo per organizzare questo contenuto in generale –

42

È necessario aggiungere le informazioni di assemblaggio al progetto. Questo evita la necessità di creare un file di classe vuoto.

Per creare facilmente un file di informazioni sull'assieme, aprire le proprietà del progetto, selezionare la scheda dell'applicazione, fare clic su "Informazioni sull'assemblaggio" e immettere i dati appropriati. Questo creerà automaticamente il file assemblyinfo.cs nella posizione appropriata.

+0

E i progetti di Visual Basic? Ho un file "My Project \ AssemblyInfo.vb" anziché un file "Properties \ AssemblyInfo.cs". Vedo ancora l'errore. –

+0

Quali sono i "dati appropriati" minimi che devono essere aggiunti? –

+0

In effetti, niente di niente. Ma tu lo usi per impostare informazioni di assemblaggio come versione, titolo, guida, ecc ... – ranthonissen

5

Ho avuto lo stesso errore con un progetto che non ha alcun file .cs. Ho risolto aggiungendo la seguente sezione al corrispondente .csproj-file:

<PropertyGroup> 
    <CoreBuildDependsOn> 
    </CoreBuildDependsOn> 
    </PropertyGroup> 

In questo modo il progetto non sarà costruito, e non ci sarà alcun accumulo di uscita (non viene creato nessun DLL) funziona sia su VS e TFS.