Почему Azure Add> роль роли рабочего в решении... greyed в VS2010?

У меня есть библиотека классов С#.Net 4, которая, я думаю, настроена на роль Azure Worker, т.е. класс реализует Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint и имеет метод Run() и OnStart(). Однако, когда я нажимаю правой кнопкой мыши на папке "Роли" в моем пустом проекте Windows Azure и нажимаю "Добавить", чтобы добавить "Проект роли рабочего в решении...", выделен серым цветом. Что мне нужно сделать для VS2010, чтобы реализовать там потенциальный проект роли сотрудников в решении?

enter image description here

Ответы

Ответ 1

" Добавить > Роль рабочего роли в решении..." отображает только рабочие роли-роли, а не библиотеки классов. Хотя они выглядят одинаково, они не являются.

Вы можете создать проект роли сотрудника, используя следующее:

  • При создании нового облачного проекта

enter image description here

  • Щелкнув правой кнопкой мыши по облачному проекту

enter image description here

Тогда вы сможете добавить этот проект роли сотрудника в другой облачный проект, если хотите. В этом случае параметр " Добавить > Рабочий роль ролей в решении..." будет включен.

Теперь вы также можете "преобразовать" библиотеку классов в проект роли пользователя. Щелкните правой кнопкой мыши библиотеку классов и выберите Unload Project.. затем (после разгрузки), Изменить файл проекта и добавьте элемент RoleType в первый группа свойств:

<PropertyGroup>
   <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
   <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
   <ProductVersion>8.0.30703</ProductVersion>
   <SchemaVersion>2.0</SchemaVersion>
   <ProjectGuid>{7E9F972F-BE92-4CF7-998D-E76B61B21C37}</ProjectGuid>
   <OutputType>Library</OutputType>
   <AppDesignerFolder>Properties</AppDesignerFolder>
   <RootNamespace>ClassLibrary1</RootNamespace>
   <AssemblyName>ClassLibrary1</AssemblyName>
   <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
   <FileAlignment>512</FileAlignment>
   <RoleType>Worker</RoleType>  <-------------------- HERE
 </PropertyGroup>

Наконец - перезагрузите проект обратно в решение → Щелкните правой кнопкой мыши Обновить проект. (ПРИМЕЧАНИЕ: если файл Xml все еще открыт, вас попросят закрыть его, что идеально. Скажите "да" и закройте его)... Теперь ваша библиотека классов была повторно добавлена, но это библиотека классов ролей рабочих.

Если вы это сделаете, Visual Studio распознает проект как роль рабочего, и вы сможете добавить его в проект облака:

enter image description here

Примечание.. В вашей библиотеке классов должен быть класс, полученный из RoleEntryPoint. Дополнительная информация: http://blogs.msdn.com/b/jnak/archive/2010/02/11/windows-azure-roleentrypoint-method-call-order.aspx