У меня есть библиотека классов C # .Net 4, которую, как мне кажется, я настроил как рабочую роль Azure, то есть класс реализует Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint и имеет методы Run () и OnStart (). Однако, когда я щелкаю правой кнопкой мыши папку «Роли» в моем пустом проекте Windows Azure и нажимаю «Добавить», опция добавления «Проект рабочей роли в решение…» становится серой. Что мне нужно сделать, чтобы VS2010 понял, что в решении есть проект потенциальной рабочей роли?
Почему «Добавить Azure» ›Проект рабочей роли в решении… выделен серым цветом в VS2010?
Ответы (1)
«Добавить> Проект рабочей роли в решении ...» отображает только проекты рабочих ролей, но не библиотеки классов. Хотя они выглядят одинаково, это не так.
Вы можете создать проект рабочей роли, используя следующее:
- При создании нового облачного проекта
- Щелкнув правой кнопкой мыши облачный проект
Затем вы сможете добавить этот проект рабочей роли в другой облачный проект, если хотите. В этом случае будет включен параметр меню «Добавить> Проект рабочей роли в решении ...».
Теперь вы также можете «преобразовать» библиотеку классов в проект рабочей роли. Щелкните правой кнопкой мыши библиотеку классов и выберите Выгрузить проект ... затем (после того, как он будет выгружен), Изменить файл проекта и добавьте элемент 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 распознает проект как рабочую роль, и вы сможете добавить его в облачный проект:
Примечание. Для вашей библиотеки классов потребуется класс, производный от RoleEntryPoint. Дополнительная информация: http://blogs.msdn.com/b/jnak/archive/2010/02/11/windows-azure-roleentrypoint-method-call-order.aspx