2015-10-28 2 views
0

В настоящее время я работаю с инструментом XSD.exe, чтобы получить классы XSD-файлов. Но когда я передаю файл инструменту, он меняет путь/файл.XSD.exe меняет параметры

string fileName = "C:\\TEST\\testFILE.xsd"; 
Process p = new Process(); 
p.StartInfo = new ProcessStartInfo("C:\\xsd.exe", "/c /language:CS " + fileName);  
p.StartInfo.RedirectStandardOutput = true; 
p.StartInfo.RedirectStandardError = true; 
p.StartInfo.UseShellExecute = false; 
p.Start(); 

StringBuilder error = new StringBuilder(); 
while (!p.HasExited)          
    error.Append(p.StandardError.ReadToEnd()); 
MessageBox.Show(error.ToString()); 

Это пример кода, который покажет вам эту проблему. Вывод выглядит следующим образом:

Error: Could not find file "c:\test\testfile.xsd 

Конечно нет такого файла или каталога. Вы, ребята, знаете, как это решить?

Thank;)

+0

Я не думаю, что это очевидно, что файл не существует. Вы ссылаетесь на строчный перевод? Вы пытались вызвать xsd.exe напрямую без C++ -файлов? – urzeit

ответ

0

Я нашел проблему. Путь в приведенном выше примере - плохой выбор. Фактически, путь, который я действительно использую, содержит пробелы. XSD.exe использует пробелы для разделения аргументов. Поэтому вам нужно добавить дополнительные цитаты в начале и в конце строки пути.

Например:

string cmdPath= String.Format(@"""{0}""", path); 
Смежные вопросы