web-dev-qa-db-fra.com

Comment référencer ces packages avec Mono afin de compiler

J'essaie de compiler un script C # avec Mono sur Debian par ligne de commande, comme ceci:

gmcs Main.cs

Cependant, j'obtiens l'erreur suivante:

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

Ce sont les références en haut de 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;

Je comprends que je dois dire à Mono quelles bibliothèques inclure en ajoutant -pkg:whatever. Mon problème est que je ne sais pas comment ces bibliothèques sont appelées, donc je ne sais pas quelle commande est utilisée pour les inclure. En fait, je ne sais même pas si je dois télécharger ces bibliothèques quelque part ou si elles viennent avec Mono.

Notez également que les 2 derniers sont la bibliothèque iTextSharp, pour laquelle j'ai itextsharp.dll vient d'être placé dans le même répertoire que le script, car je ne sais pas quoi faire d'autre avec.

S'il vous plaît quelqu'un pourrait-il m'expliquer comment obtenir le fichier à compiler!

33
Alasdair

Essaye ça:

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

Avec les nouvelles versions de mono, essayez ceci.

mcs /reference:System.Drawing.dll /reference:itextsharp.dll Main.cs
49
icktoofay

Voici une autre solution qui a fonctionné pour moi dans un cas similaire où j'ai eu cette erreur:

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?  

J'avais ces références dans mon programme:

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

J'ai obtenu la solution de buntuforums :

 gmcs -pkg:dotnet *.cs
6
milia

J'ai eu cette erreur, et quand j'avais juste besoin d'utiliser System.Net.Http, j'ai utilisé:

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

et cela a bien fonctionné pour moi. Lorsque j'ai essayé d'inclure le chemin d'accès complet à System.Net.Http.dll, ça n'a pas marché. C'est-à-dire, tête haute, mono garde la trace des chemins. De plus, j'ai la dernière version de mono.

0
Max