Visual Studio Express - отсутствующий подтип проекта препятствует открытию проекта

Я пытаюсь создать проект WCF, следуя пошаговому руководству здесь... http://msdn.microsoft.com/en-us/library/bb386386.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-3, но застрял на первых шагах.

Плохо — VSE Windows Desktop не имеет шаблонов служебной библиотеки WCF.

Хорошо — VSE Web Developer делает, поэтому я настроил проект WCF в VSE Web Developer.

Плохо — не удается открыть проект WCF в VSE для рабочего стола Windows.

Хорошо — узнайте, что вы можете копировать шаблоны из папок веб-разработчика VSE на рабочий стол VSE Windows, и я это делаю.

Хорошо - VSE Windows Desktop теперь имеет шаблоны библиотеки служб WCF, поэтому я пытаюсь создать новый проект WCF. ВСЕ вроде соответствует, настраивает папку проекта... но потом

Плохо - ...выдает ошибку...

The project file '... WcfService1.csproj' cannot be opened.

There is a missing subtype.

Subtype:'{blah blah}' us unsupported by this installation.

Я даже пробовал его выключить и снова включить.

Что дальше?


person Extermiknit    schedule 30.10.2014    source источник
comment
Сервисная библиотека WCF — это не что иное, как библиотека классов (DLL). Шаблон проекта может упростить запуск и запуск, но вместо того, чтобы проделывать все пройденные обручи, просто создайте проект библиотеки классов в VSE Windows Desktop.   -  person Tim    schedule 31.10.2014
comment
@ Тим, я не могу. VSE Windows Desktop не имеет шаблонов библиотеки служб WCF, поэтому я даже не могу создать проект WCF. Вы имеете в виду что-то другое?   -  person Extermiknit    schedule 31.10.2014
comment
Возможно, вы захотите увидеть этот связанный (повторяющийся?) вопрос о некоторых препятствиях, с которыми вы сталкиваетесь. stackoverflow.com/questions/14698258/   -  person DeanOC    schedule 31.10.2014


Ответы (2)


Как я упоминал в своем комментарии, библиотека служб WCF — это не что иное, как библиотека классов — в шаблоне проекта библиотеки служб WCF просто есть дополнительные элементы, позволяющие ускорить настройку проекта. Вы можете сделать то же самое, создав библиотеку классов.

Перейдите в меню «Файл» -> «Новый проект». В открывшемся окне разверните Visual C#, затем выберите Windows и выберите Библиотеку классов из списка в центре, дайте ей имя и нажмите OK.

введите здесь описание изображения

Вам нужно будет добавить интерфейс и параметры конфигурации для службы, но вы должны иметь возможность копировать и вставлять из статьи, которой вы следуете. Как только это будет сделано, вуаля, у вас есть сервисная библиотека WCF.

Отредактировано для получения более подробной информации

Единственное, что дает вам шаблон библиотеки служб WCF, — это шаблон для библиотеки служб WCF, который включает в себя файл .cs для реализации службы, файл .cs для контракта службы (интерфейса), который реализует служба, и файл app.config. файл с необходимыми <system.serviceModel> записями.

Придерживаясь статьи, на которую вы ссылались в своем исходном сообщении, вот как это сделать без шаблона.

Шаг 1 и 2. Следуйте тому, что я сказал выше - создайте библиотеку классов. VS создаст проект, и вы увидите файл с именем class1.cs. Это будет ваш класс обслуживания. При желании переименуйте его в WCFServiceLibrary1.cs.

Затем добавьте интерфейс и назовите его IWCFServiceLibrary1. Это будет ваш сервисный контракт. Вам нужно будет обновить файл WCFServiceLibrary1.cs и добавить : IWCFServiceLibrary1 после public class WCFServiceLibrary1, чтобы он выглядел так:

public class WCFServiceLibrary1 : IWCFServiceLibrary1

В интерфейсе добавьте атрибут [ServiceContract] над интерфейсом, например:

[ServiceContract]
public interface IWCFServiceLibrary1

Вы также захотите добавить ссылку на System.ServiceModel и using System.ServiceModel в свой класс и интерфейс.

Шаг 3 и 4. Скопируйте код из статьи в нужные файлы.

Шаг 5: Вы можете протестировать службу, нажав F5 и запустив WCFTestClient.

После этого вы сможете следовать остальной части статьи.

Это займет немного больше времени, но вы также лучше поймете, что такое библиотека служб WCF.

person Tim    schedule 31.10.2014
comment
Пробовал это. Настроил новую библиотеку классов в VSE для рабочего стола Windows и начал копировать элементы из VSE для Интернета (неуклюже, но пытался найти проблему). НО, не удалось создать элемент веб-службы .asmx. На самом деле VSE для рабочего стола Windows не имеет ни одного элемента в веб-узле для создания нового элемента. Как я могу получить эти предметы там? PS Я посмотрел в связанных статьях, в которых говорится о редактировании XML-файла, но где это? - person Extermiknit; 31.10.2014
comment
В порядке. Во-первых, перестаньте пытаться копировать вещи из VSE для Интернета. На рабочем столе есть все, что вам нужно для создания этой библиотеки служб WCF, просто она не упакована в аккуратный шаблон. ASMX != WCF — ASMX является устаревшей технологией и не должна использоваться для новых разработок. Дайте мне несколько минут, и я обновлю свой ответ. - person Tim; 31.10.2014
comment
Спасибо за терпеливость. Я выполнил ваши шаги, но застрял на шаге 5. F5 (в библиотеке классов) дает следующее сообщение об ошибке. Проект с типом вывода библиотеки классов не может быть запущен напрямую. Для отладки этого проекта добавьте в это решение исполняемый проект, который ссылается на проект библиотеки. Установите исполняемый проект в качестве запускаемого проекта. Думаю, мне нужен следующий шаг в пошаговом руководстве MSDN, чтобы управлять библиотекой классов. - person Extermiknit; 01.11.2014
comment
Нет — на следующем этапе пошагового руководства требуется добавить ссылку на службу, но в Discover ничего не отображается, даже если я добавлю проект WcfService1 в решение. Мне кажется, что у меня есть файлы, но нет механизма, позволяющего использовать эти файлы для настройки службы. Кроме того, VSE для рабочего стола Windows не имеет опций для Интернета, как VSE для Интернета (что неудивительно), поэтому нет механизма выбора сервера (например, IIS Express) или настройки локального хоста. Нужно ли вручную что-то кодировать в VSE для рабочего стола Windows, чтобы создать фиктивный сервер/локальный хост? - person Extermiknit; 01.11.2014

Управление ожиданиями. Ожидалось, что я пройду все этапы пошагового руководства, но они могут быть не нужны (что подразумевается в данных ответах). Итак, я попробовал настройку bare-bones, описанную здесь ...

Можно ли начать изучать WCF с помощью Visual Studio Express для Windows Desktop 2013?

person Extermiknit    schedule 12.11.2014