Я пытаюсь использовать svcutil.exe для создания только сервисных контрактов (интерфейсов) из набора файлов .wsdl. Когда я это делаю (из wsdl, размещенного по http), он выбирает включенные схемы и генерирует для них весь код.
Здорово.
Однако я ДЕЙСТВИТЕЛЬНО хотел бы использовать набор классов, уже сгенерированных из файлов схемы с помощью инструмента xsd.exe (причины этого не важны, достаточно сказать, что Мне нужно, чтобы типы были в одной сборке, а сервисные контракты в другой). Мне удалось создать сборку, содержащую все типы.
Проблема возникает, когда я пытаюсь заставить svcutil.exe использовать типы в этой сборке. Моя командная строка выглядит примерно так:
svcutil /target:code /noconfig /reference:my_types.dll http://path/to/wsdl
Это прекрасно работает, но сгенерированный код содержит дубликаты всех типов в файле my_types.dll. Насколько я понимаю из документации для svcutil.exe, это именно та проблема, которую должен решить параметр /reference:. Однако в моем случае это не работает.
Почему?