用于C#构建时的CSC命令参数用法

时间:2009-12-16 06:35:23

标签: c# csc

ParseXSD.cs

using System;
using System.Collections;
using System.Xml;
using System.Xml.Schema;


class XmlSchemaTraverseExample
{
    static void Main()
    {
        // Add the customer schema to a new XmlSchemaSet and compile it.
        // Any schema validation warnings and errors encountered reading or 
        // compiling the schema are handled by the ValidationEventHandler delegate.
        XmlSchemaSet schemaSet = new XmlSchemaSet();
        schemaSet.ValidationEventHandler += new ValidationEventHandler(ValidationCallback);
        schemaSet.Add("http://www.w3.org/2001/XMLSchema", "tmp.xsd");
        schemaSet.Compile();

        // Retrieve the compiled XmlSchema object from the XmlSchemaSet
        // by iterating over the Schemas property.
        XmlSchema customerSchema = null;
        foreach (XmlSchema schema in schemaSet.Schemas())
        {
            customerSchema = schema;
        }

        // inserted more code here....
}

}

目前,我的ConsoleApp运行良好。

我想从下面的代码中删除硬代码(xsd文件路径)。

//我不知道如何更新这一行。

schemaSet.Add("http://www.w3.org/2001/XMLSchema", "tmp.xsd"); 

然后我可以在构建时使用下面的CSC命令运行我的 ParseXSD.cs 文件。

//我不知道正确的命令格式。我可以轻松更新路径参数。没有硬编码。

 CSC ParseXSD.cs d:/tmp/tmp.xsd  

请给我一些指导。提前谢谢。

1 个答案:

答案 0 :(得分:2)

是否要在编译时或运行时指定它?

在运行时更改

static void Main()

static void Main(string[] args)

然后

schemaSet.Add("http://www.w3.org/2001/XMLSchema", args[0]);

如果要在编译时指定它,您可以使用预编译指令来执行此操作,但我不确定是否可以为csc指定它们。您的另一个选择是在使用命令行脚本或类似脚本编译之前进行注入。