Как использовать ссылки при компиляции кода С# через командную строку

Может ли кто-нибудь помочь мне скомпилировать через командную строку некоторые файлы С#? У меня есть 4 файла для компиляции: Main, Form1 (который использует файл 2.cs) и еще один класс, используемый в проекте.

Я хотел бы скомпилировать этот проект в командной строке, чтобы добавить переключатель /t:library (как в этом руководстве: http://dotnetslackers.com/articles/csharp/WritingAnActiveXControlInCSharp.aspx).

Однако после использования «csc /t:library Program1.cs MainForm.cs MainForm.Designer.cs EigenObjectRecognizer.cs» я получаю отсутствующие ошибки ссылки на сборку, такие как эти:

\Project\FaceRecProOVaspVer\FaceRecProOV\MainForm.cs(14,15): error CS0234: The type or namespace name 'Structure' does not exist
    in the namespace 'Emgu.CV' (are you missing an assembly reference?)

У меня установлены двоичные файлы EMGU. Я думаю, мне нужно использовать некоторые .dll из этой папки, такие как EMGU.CV.dll?


person Iuli    schedule 11.05.2012    source источник
comment
Когда у вас есть Main и Form1, вы, скорее всего, не хотите /t:library   -  person Henk Holterman    schedule 12.05.2012


Ответы (1)


Чтобы сослаться на библиотеку в командной строке, вам нужно использовать параметр компилятора /r: и передать относительный путь к библиотеке. Предполагая, что он находится в том же каталоге, вы можете сделать следующее

csc /r:EMGU.CV.dll /t:library Program1.cs MainForm.cs MainForm.Designer.cs EigenObjectRecognizer.cs

Документация: http://msdn.microsoft.com/en-us/library/yabyz3h4. Краткая версия документации доступна непосредственно из командной строки, указав /?: C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc /?

person JaredPar    schedule 11.05.2012
comment
Спасибо любезно. Как добавить более 1 ссылки на библиотеку .dll? Пробовал просто поставить следующий в продолжение, но получаю ошибку. Я использовал csc /r:Emgu.CV.Dll Emgu.CV.UI.dll. Будет ли правильным синтаксисом добавлять /r: к каждой библиотеке? - person Iuli; 12.05.2012
comment
@luli да, вам нужно добавить /r: для каждой библиотеки, на которую вы хотите сослаться - person JaredPar; 12.05.2012
comment
Что делать, если я хочу добавить ссылку на уже доступную сборку, в частности на System.Printing. Какой должна быть командная строка? - person Shameel Mohamed; 31.07.2017