Использование параметров команды CSC для времени сборки C # - PullRequest
0 голосов
/ 16 декабря 2009

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"); 

Тогда я смогу запустить свой файл ParseXSD.cs во время сборки с помощью команды CSC ниже.

// Я не знаю правильный формат команды. Я мог бы легко обновить параметр пути. НЕТ жесткого кода.

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

Пожалуйста, дайте мне руководство. заранее спасибо.

1 Ответ

2 голосов
/ 16 декабря 2009

Вы хотите указать его во время компиляции или во время выполнения?

чтобы сделать это при изменении времени выполнения

static void Main()

до

static void Main(string[] args)

, а затем

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

Если вы хотите указать его во время компиляции, вы можете использовать для этого директивы прекомпиляции, но я не уверен, что их можно указать для csc. Другой вариант - сделать инъекцию перед компиляцией с использованием сценариев командной строки или аналогичных.

...