2011-11-25 4 views
25

próbuję skompilować skrypt C# z mono na Debianie poprzez linię poleceń, na przykład:Jak odwołać te pakiety z mono w celu zestawienia

gmcs Main.cs 

Jednak pojawia się następujący błąd:

Main.cs(6,14): error CS0234: The type or namespace name `Drawing' does not exist in the namespace `System'. Are you missing an assembly reference? 
Main.cs(7,14): error CS0234: The type or namespace name `Drawing' does not exist in the namespace `System'. Are you missing an assembly reference? 
Main.cs(12,7): error CS0246: The type or namespace name `iTextSharp' could not be found. Are you missing a using directive or an assembly reference? 
Main.cs(13,7): error CS0246: The type or namespace name `iTextSharp' could not be found. Are you missing a using directive or an assembly reference? 
Main.cs(1526,31): error CS0246: The type or namespace name `Bitmap' could not be found. Are you missing a using directive or an assembly reference? 
Main.cs(6,14): error CS0234: The type or namespace name `Drawing' does not exist in the namespace `System'. Are you missing an assembly reference? 
Main.cs(7,14): error CS0234: The type or namespace name `Drawing' does not exist in the namespace `System'. Are you missing an assembly reference? 
Main.cs(12,7): error CS0246: The type or namespace name `iTextSharp' could not be found. Are you missing a using directive or an assembly reference? 
Main.cs(13,7): error CS0246: The type or namespace name `iTextSharp' could not be found. Are you missing a using directive or an assembly reference? 
Compilation failed: 9 error(s), 1 warnings 

te odniesienia w górnej części Main.cs:

using System; 
using System.IO; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Diagnostics; 
using System.Drawing; 
using System.Drawing.Imaging; 
using System.Net; 
using System.Text; 
using System.Text.RegularExpressions; 
using System.Xml; 
using iTextSharp.text; 
using iTextSharp.text.pdf; 

rozumiem, że muszę powiedzieć Mono, które biblioteki dołączyć, dodając -pkg:whatever. Mój problem polega na tym, że nie wiem, jak nazywa się te biblioteki, więc nie wiem, jakie polecenie jest używane do ich włączenia. Właściwie to nie wiem nawet, czy muszę pobrać te biblioteki skądś, czy pochodzą one z Mono.

Należy również zauważyć, że ostatnie 2 to biblioteka iTextSharp, dla której mam itextsharp.dll właśnie umieszczony w tym samym katalogu, co skrypt, ponieważ nie wiem, co jeszcze z tym zrobić.

Czy ktoś mógłby mi wytłumaczyć, jak skompilować plik?

Odpowiedz

42

Spróbuj tego:

gmcs /reference:System.Drawing.dll /reference:itextsharp.dll Main.cs 

Z nowszych wersjach mono, spróbuj tego.

mcs /reference:System.Drawing.dll /reference:itextsharp.dll Main.cs 
+0

Zadziałało. Dziękuję Ci! Przyjmuję twoją odpowiedź, gdy strona mi pozwoli. – Alasdair

+2

W nowych wersjach mono istnieje teraz tylko jeden kompilator, a mianowicie mcs. – Salil

+0

Na OSX byłoby to 'mcs -reference: System.Drawing.dll Main.cs', itd. I to znajdzie pliki w tym samym katalogu. Prawdopodobnie oczywiste, ale nigdy nie wiadomo. – atomicules

5

Oto kolejny rozwiązanie pracował dla mnie w podobnym przypadku, gdzie mam ten błąd:

Eventdemo.cs(2,14): error CS0234: The type or namespace name `Drawing' does not exist in the namespace `System'. Are you missing `System.Drawing' assembly reference? 
Eventdemo.cs(3,14): error CS0234: The type or namespace name `Windows' does not exist in the namespace `System'. Are you missing an assembly reference?       │ 
Eventdemo.cs(8,19): error CS0246: The type or namespace name `Form' could not be found. Are you missing an assembly reference? 

miałem te referencje w moim programie:

using System; 
using System.Drawing; 
using System.Windows.Forms; 

mam rozwiązanie od ubuntuforums:

gmcs -pkg:dotnet *.cs 
+1

mcs -pkg: dotnet * .cs zadziałało dla mnie! – Tiago

0

mam ten błąd, a kiedy tylko potrzebne do korzystania System.Net.Http użyłem:

$mcs /reference:System.Net.Http.dll Program.cs 

i to działało dobrze dla mnie. Kiedy próbowałem dołączyć pełną ścieżkę do System.Net.Http.dll, to nie działało. To znaczy, heads up, mono śledzi ścieżki. Mam też najnowszą wersję mono.