2009-05-25 4 views
27

Есть ли способ контролировать выходное имя файла из xsd.exe?xsd.exe output filename

Моя особая проблема заключается в том, что если импортированный xsd указан, это добавляется к имени файла.

ответ

33

This link предлагает другую альтернативу ... используя символ пути в определении входных схем сбрасывает имя генерируемого файла. Поэтому, если вы используете следующее, вы сможете контролировать свое имя выходного файла.

xsd.exe schema1.xsd schema2.xsd .\schema3.xsd 

Заставляет xsd.exe для создания файла schema3.cs.

Примечание: Это взлом, но до сих пор (VS 2010) он работает.

+3

+1, Именно то, что мне нужно! (работает даже в тех случаях, когда схемы указаны в файле параметров) – Regent

+1

Имейте в виду, что «. \» должен использоваться в последнем файле. При необходимости измените порядок имен ваших входных файлов в команде. – Marcel

+0

Просто красиво! – pvieira

6

Обновление: См. Ответ @ Obalix.

No. только папки вывода:

/o[ut]:directoryName 

От here.

11

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

Сказанное: тривиально обернуть это в пакетную работу, которая будет делать то, что вы хотите.

rename output.cs yourname.cs 
8

Чтобы добавить к ответу AxelEckenberger, есть небольшое улучшение в хаке, если вы делаете это регулярно (например, в пакетном скрипте). Создайте пустой файл схемы с именем вывода, который вы хотите использовать

Output.xsd

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" /> 

Тогда вам не нужно переименовать выходного

xsd.exe schema1.xsd schema2.xsd schema3.xsd .\Output.xsd 

Теперь выходной файл будет называться Output.cs.

Смежные вопросы