为什么Azure Add>解决方案中的工作者角色项目......在VS2010中变灰了?

时间:2012-05-31 08:26:08

标签: visual-studio-2010 azure azure-worker-roles

我有一个C#.Net 4类库,我认为我已经设置为Azure辅助角色,即该类实现Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint并具有Run()和OnStart()方法。但是,当我右键单击空的Windows Azure项目中的Roles文件夹并单击添加选项以添加“解决方案中的工作者角色项目...”时,将显示为灰色。我需要为VS2010做些什么来实现解决方案中潜在的工作角色项目?

enter image description here

1 个答案:

答案 0 :(得分:30)

添加>解决方案中的工作者角色项目...... ”仅显示工作者角色项目而非类库。虽然它们看起来一样,但它们不是。

您可以使用以下方法创建辅助角色项目:

  • 创建新的云项目时

enter image description here

  • 右键单击云项目

enter image description here

然后,如果您愿意,您将能够在其他云项目中添加该工作者角色项目。在这种情况下,将启用“添加>解决方案中的工作者角色项目...... ”菜单选项。

现在,您还可以将类库“转换”为辅助角色项目。右键单击类库并选择卸载项目 ..然后(一旦卸载),编辑项目文件并在第一个中添加 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>

最后 - 将项目重新加载回解决方案 - &gt;右键单击重新加载项目。 (注意:如果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