#c#
#c#
Вопрос:
Есть ли у вас какие-либо идеи, как можно сгенерировать производные файлы (*.xsd, *.wsdl, *.svcinfo, *.datasource и, наконец, Reference.cs), используя файл Reference.svcmap? В VS (2015) это легко сделать, щелкнув правой кнопкой мыши и выбрав «Обновить ссылку на службу», но как это работает с использованием любого инструмента командной строки? (Без Reference.cs решение не может быть скомпилировано, было бы неплохо сгенерировать необходимые файлы в качестве события предварительной сборки.)
Заранее благодарю вас!
Ответ №1:
Я полагаю, вы ищете svcutil.exe инструмент:
Обновить:
Я еще немного покопался. Используемый пользовательский инструмент определен в Microsoft.VisualStudio.Editors.WCF, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
сборке. Похоже, что это не используется в svcutil.exe
инструменте. Сборка находится в gac, но я не знаю, как ее можно выполнить с помощью командной строки. Вероятно, вам лучше всего использовать wsdl для ссылки на ваш сервис и вместо этого использовать инструмент svcutil.
На самом деле, я только что попробовал сгенерировать код, используя только файл Reference.svcmap, и результатом стал пустой файл Reference.cs, содержащий только комментарий «автоматически созданный». Итак, одного файла Reference.svcmap недостаточно для генерации кода прокси-сервера клиента. Вам потребуется больше входных данных, чем это. Когда вы запускаете опцию «обновить ссылку на службу» в Visual Studio, она обычно извлекает все метаданные из конечной точки обмена метаданными и восстанавливает ваш код. Этого также можно достичь с помощью svcutil.exe
, передав URL сервиса.
Комментарии:
1. Спасибо, но, скорее всего svcutil.exe не подходит для этого. Он может использовать файлы *.xsd, *.wsdl для генерации Reference.cs , но не может выполнить первый шаг (генерация этих типов файлов из Reference.svcmap ). Или, может быть, но правильный список параметров для достижения этого мне неизвестен.