【问题标题】:How to use references when compiling c# code via command line通过命令行编译c#代码时如何使用引用
【发布时间】:2012-05-20 12:12:25
【问题描述】:

谁能帮我通过命令行编译一些 c# 文件? 我有 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?

【问题讨论】:

  • 当你有 Main 和 Form1 时,你很可能不想要 /t:library

标签: c# .net compiler-construction command-line csc


【解决方案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 /?,可以直接从命令行获得简短版本的文档

【讨论】:

  • 非常感谢。我将如何添加超过 1 个 .dll 库引用?我尝试将下一个继续放置,但出现错误。我使用了 csc /r:Emgu.CV.Dll Emgu.CV.UI.dll。正确的语法是将 /r: 添加到每个库吗?
  • @luli 是的,您需要为要引用的每个库添加 /r:
  • @luli 其实你可以使用分号来分隔多个dll文件。它在 MSDN 上以下文章的“使用 /reference 引用外部程序集”部分中进行了描述:Working with the C# 2.0 Command Line Compiler。虽然是指C# 2.0,但希望现代版本的csc.exe 还是有这个功能的。
  • 如果我想添加对已经可用程序集的引用,特别是 System.Printing,该怎么办。命令行应该是怎样的?
猜你喜欢
  • 2015-03-03
  • 2017-10-16
  • 2019-03-29
  • 2012-03-15
  • 2020-07-16
  • 1970-01-01
  • 2022-01-18
  • 2013-01-01
  • 2011-02-02
相关资源
最近更新 更多