2010-05-22 5 views
2

J'essaye de compiler mon projet avec mono sur Linux. Mon cmd ressemble à quelque chose comme ...compiler des fichiers cs avec mono?

gmcs Pages/UserProfile.cs Properties/AssemblyInfo.cs queues.cs watch_editor.cs Class1.cs -define:USE_SQLITE -r:System -r:System.Collections -r:System.Collections.Generic -r:System.Collections.ObjectModel -r:System.Collections.Specialized -r:System.Configuration 

mais beaucoup long. et je reçois la sortie

error CS0006: cannot find metadata file `System.Collections' 
error CS0006: cannot find metadata file `System.Collections.Generic' 
error CS0006: cannot find metadata file `System.Collections.ObjectModel' 
... 

Comment puis-je résoudre ce problème?

J'ai aussi essayé l'inverse (ci-dessous) et avait la même erreur msg avec .dll à la fin de leur

gmcs -define:USE_SQLITE -r:System.dll -r:System.Collections.dll -r:System.Web.UI.WebControls CommentCenter.cs cookies.cs db.cs Default.aspx.cs 

Répondre

8

Vous confondez les assemblées et les espaces de noms. Un assembly, tel que System.dll, est un fichier de bibliothèque binaire qui peut contenir des types dans plusieurs espaces de noms. Un espace de noms peut être divisé entre plusieurs assemblys, et le nom de l'assembly ne doit pas nécessairement correspondre aux espaces de noms.

-r est utilisé pour les assemblages de référence. Vous n'avez pas besoin de référencer les espaces de noms.

Étant donné que la plupart des classes dans ces espaces de noms sont en mscorlib (qui est référencé par défaut) ou System.dll, il vous suffit probablement

gmcs Pages/UserProfile.cs Properties/AssemblyInfo.cs queues.cs watch_editor.cs Class1.cs -define:USE_SQLITE -r:System 

Je suggère fortement d'utiliser un IDE tel que MonoDevelop. Vous pouvez voir les commandes du compilateur qu'il génère, si cela vous intéresse.

+0

MonoDevelop ne fonctionne pas ATM. Apparemment, d'autres personnes ont eu des problèmes et il n'y avait pas de solution simple (il semble) –

+0

Peut-être que vous feriez mieux de poser une question à propos de ce problème aussi? –

Questions connexes