Почему не работает опция / reference для svcutil.exe? - PullRequest
7 голосов
/ 02 сентября 2010

Я пытаюсь использовать svcutil.exe для генерации только сервисных контрактов (интерфейсов) из набора файлов .wsdl. Когда я это делаю (из http-хоста wsdl), он выбирает включенные схемы и генерирует для них весь код.

Отлично.

Что бы я хотел ДЕЙСТВИТЕЛЬНО , однако я хотел бы использовать набор классов, уже сгенерированных из файлов схемы, с помощью инструмента xsd.exe (причины этого не важны, достаточно скажем, что мне нужно иметь типы в одной сборке, а сервисные контракты в другой). Мне удалось создать сборку, содержащую все типы.

Проблема возникает, когда я пытаюсь заставить svcutil.exe использовать типы в этой сборке. Моя командная строка выглядит примерно так:

svcutil /target:code /noconfig /reference:my_types.dll http://path/to/wsdl

Это работает нормально, но сгенерированный код содержит дубликаты всех типов в файле my_types.dll. Из документации для svcutil.exe я понимаю, что это именно та проблема, которую должен решить параметр / reference :. В моем случае, однако, это не работает.

Почему?

Ответы [ 2 ]

5 голосов
/ 22 октября 2010

Очевидно, это работает только для типов DataContract, а не для типов XmlSerializer.

http://blogs.msdn.com/b/youssefm/archive/2009/10/09/reusing-types-in-referenced-assemblies-with-svcutil-s-r-switch.aspx

1 голос
/ 02 июля 2015

У меня была эта проблема.Что-то в двоичном файле, на которое я ссылался с помощью / r, все еще снова создавалось в сгенерированном коде.Один из объектов, возвращаемых из одной из сервисных функций, возвращал объект данных или какую-то другую ужасную вещь, подобную этой.Я добавил / r ко всему пути к System.Data, и это исправило его.

/ r: "C: \ Program Files (x86) \ Справочные сборки \ Microsoft \ Framework.NETFramework \ v4.5.2 \System.Data.dll "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...