Компилятор командной строки Microsoft С# не находит .dll во внешнем каталоге

Я хотел бы скомпилировать программу C# из командной строки в терминале Linux. Мой csc.exe добавлен в мой путь и работает правильно. Структура каталога выглядит следующим образом:

|-- Program.cs
|-- Otherfiles.cs
|-- bin
|    |-- Debug
|    |    |-- Newtonsoft.Json.dll

Из верхнего каталога я использую следующую команду для компиляции:

csc *.cs /r:./bin/Debug/Newtonsoft.Json.dll
--> error CS2001: Source file 'r:bin/Debug/Newtonsoft.Json.dll' could not be found

Есть ли лучший способ сделать то, что я пытаюсь сделать здесь, или мне просто нужно скопировать файлы .dll, которые я хочу, в тот же каталог, что и Program.cs, как это делается в этот вопрос?


person Dagrooms    schedule 23.07.2015    source источник


Ответы (1)


Аргумент /reference используется только для указания имени сборки.

Чтобы указать дополнительные каталоги для поиска файлов сборки, используйте аргумент /lib:

csc *.cs /r:Newtonsoft.Json.dll /lib:"./dir with spaces/need quotes", ./bin/Debug

Используйте /lib, чтобы указать каталог, в котором находится одна или несколько ссылок на ваши сборки. В разделе /lib также обсуждаются каталоги, в которых компилятор ищет сборки.

person rene    schedule 23.07.2015
comment
Очень полезно, страница Microsoft по сборке командной строки не включает событие / r. msdn.microsoft.com/en-us/library/6ds95cz0.aspx - person Dagrooms; 23.07.2015
comment
Я знаю, что это ярлык для какой-то другой команды, просто он не упоминается. - person Dagrooms; 23.07.2015