如何通过命令提示符编译C#应用程序

本文关键字:应用程序 编译 命令提示符 何通过 | 更新日期: 2023-09-27 18:20:30

我有一个文件夹。我有三个cs文件。

演示.cs

using System;
namespace Demo
{
    public class Test
    {
        public static Entity entity = new Entity();
        public static void Main(string[] args)
        {
            var objectHandler = Activator.CreateInstance(null,
                                                         args);
            var obj = objectHandler.Unwrap();
            entity.GetAnnotation(obj.GetType());
        }
    }
}

实体.cs

using System;
namespace Demo
{
    public class Entity
    {
        public void GetAnnotation(Type classname)
        {
            Attribute[] dataAnnotationlist = Attribute.GetCustomAttributes(propInfo);
            foreach (var dataannotationAttribute in dataAnnotationlist)
            {
                //some operation to get annotation property from Employee.cs class
            }
        }
    }
}

员工.cs

using System.ComponentModel.DataAnnotations;
namespace Demo
{
    public class Employee
    {
        [Display(Name = "name")]
        public string name { get; set; }
    }
}

我已经使用反射从类文件(Employee.cs)创建了XML文件格式。但尝试通过命令提示符运行时出错。它在visual studio中运行。

我想使用命令提示符运行Test.cs,Entity.cs,并将"Employee.cs"作为字符串参数传递给Main方法。现在,我已经通过了硬编码,

System.Runtime.Remoting.ObjectHandle objectHandler = Activator.CreateInstance(null, "Demo.Employee");

它运行良好,但如何通过命令传递它。

发生的错误为:

Entity.cs(8,29):错误CS0234:类型或命名空间名称命名空间中不存在"DataAnnotations"System.ComponentModel"(是否缺少程序集引用?)Entity.cs(9,19):error CS0234:类型或命名空间名称'对象'在命名空间"System.Data"中不存在(是否缺少装配参考?)Employee.cs(6,33):错误CS0234:类型或命名空间名称"DataAnnotations"命名空间"System.ComponentModel"中不存在(是否缺少装配参考?)

它还显示了"DataAnnotations"answers"Objects"的错误。

我该如何解决这个问题?

如何通过命令提示符编译C#应用程序

使用MSBUILD简单构建.csproj的一个选项。

更有趣的是通过csc的命令行参数自己配置所有依赖项。对于您的即时错误,您需要使用类似于以下的/r:命令添加引用

 csc /out:Test.exe /r:System.ComponentModel.DataAnnotations.dll *.cs

有关csc命令行参数的更多详细信息,请查看帮助csc /?或MSDN csc命令行选项和使用csc构建。