У нас есть набор сборок, которые реализуют операции веб-сервисов.
Чтобы создать клиентские прокси-серверы, мы сначала строим и разворачиваем веб-сервисы (сборки и файлы ASMX) на сервере.
Затем мы используем wsdl.exe, чтобы указать на конечные точки ASMX и сгенерировать классы для клиентских прокси.
Я видел, что можно создавать прокси из файлов wsdl (вместо конечных точек asmx), используя wsdl.exe или disco.exe.
Существует ли инструмент для создания файлов wsdl или прокси-классов непосредственно из сборок сервера без необходимости использования веб-сервера?
UPDATE:
Во-первых, я хотел бы сказать, что я ценю, что вы, ребята, нашли время для этого. Я также хотел бы сказать, что я знаю, как трудно давать советы, не зная всех деталей данного сценария. Тем не менее, позвольте мне подробнее рассказать о сценарии и остановиться на некоторых моментах, которые вы, ребята, сделали:
1) Это довольно большой проект, который разрабатывается уже более двух лет. Решение использовать веб-сервисы ASMX было принято до появления WCF.
2) Я уже думал о написании нашего собственного прокси-генератора, и это может быть вариантом, если мы не найдем инструмент, который это делает.
3) Мы все еще хотим связать контракт с WSDL. Чего я пытаюсь избежать, так это зависимости от веб-сервера в процессе сборки.
4) Мы уже автоматически генерируем прокси в нашей автоматической сборке, которая выполняется в TFS Build и которая сама по себе не была проблемой. Проблема, как мне сказали, состоит в том, что нужно разделить сборку на две части: сервер и клиент. Могут быть альтернативы, чтобы избежать разделения, используя какую-то необычную задачу MSBUILD, но мои знания по этому вопросу ограничены.
5) Я ожидаю, что сборка будет тормозить при сборке TFS, если код на стороне клиента и код на стороне сервера не совпадают во время компиляции. Это должно быть решено на компьютере разработчика до регистрации.
6) У нас строгий контроль над серверной и клиентской частями. Этот набор веб-сервисов служит в качестве серверной части приложения Windows Forms Click Once. Все работает в интранете. Каждый раз, когда меняется контракт, он выполняется вместе с новой версией клиентского приложения.
7) WCF не является вариантом в краткосрочной перспективе для этого набора веб-сервисов. Когда я присоединился к проекту более года назад, мне было поручено создать новый набор веб-сервисов для взаимодействия с другими внутренними системами. Эти веб-сервисы были спроектированы так, чтобы их можно было легко обновить до WCF, если высшее руководство позволит нам использовать WCF. Мне нужно взглянуть на svcutil.exe, но если он сделает то, что нам нужно, у меня будет еще один момент, чтобы убедить высшее руководство принять WCF.