コンパイルするためにこれらのパッケージをMonoで参照する方法

私は、コマンドラインでDebian上のMonoを使ってC#スクリプトをコンパイルしようとしています。

gmcs Main.cs

しかし、私は次のエラーが発生します:

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

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;

私は、 -pkg:whatever を追加することでインクルードするライブラリをMonoに伝える必要があることを理解しています。私の問題は、これらのライブラリが呼び出されているかどうか分からないため、それらを含むコマンドが何であるかわかりません。実際には、どこからでもこれらのライブラリをダウンロードする必要があるのか​​、Monoが付属しているのかどうかはわかりません。

最後の2つはiTextSharpライブラリであり、スクリプトと同じディレクトリに置かれた itextsharp.dll を持っていることに注意してください。

誰かがファイルをコンパイルする方法を私に説明することができます!

28

3 答え

これを試して:

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

新しいバージョンのモノでこれを試してみてください。

mcs /reference:System.Drawing.dll /reference:itextsharp.dll Main.cs
45
追加された
出来た。ありがとうございました!私はあなたの答えを受け入れることができます。
追加された 著者 Alasdair,
@atomicules: mcs は、すべてのプラットフォームでオプションとして/ - を使用できます。
追加された 著者 icktoofay,
/reference を簡潔にするために/r または -r に置き換えることができます
追加された 著者 Andrew,
新しいモノバージョンでは、コンパイラは現在1つしかなく、mcsです。
追加された 著者 Salil,
OSXでは、 mcs -reference:System.Drawing.dll Main.cs などとなります。これにより、同じディレクトリにあるファイルが検索されます。おそらく明らかですが、あなたは決して分かりません。
追加された 著者 atomicules,

私はこのエラーが発生した同様のケースで私のために働いた別の解決策があります:

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?  

私は私のプログラムでこれらの参考文献を持っていました:

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

私は ubuntuforums から解決策を得ました:

 gmcs -pkg:dotnet *.cs
5
追加された
mcs -pkg:dotnet * .csは私のために働いた!
追加された 著者 Tiago,

このエラーが発生し、System.Net.Httpを使用する必要があるときは、次のように使用しました。

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

それは私のためにうまくいった。 System.Net.Http.dll へのフルパスを含めると、機能しませんでした。つまり、ヘッドアップ、モノはパスを追跡します。また、私はモノの最新バージョンを持っています。

0
追加された