我有一个C#.Net 4类库,我认为我已经设置为Azure辅助角色,即该类实现Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint并具有Run()和OnStart()方法。但是,当我右键单击空的Windows Azure项目中的Roles文件夹并单击添加选项以添加“解决方案中的工作者角色项目...”时,将显示为灰色。我需要为VS2010做些什么来实现解决方案中潜在的工作角色项目?
答案 0 :(得分:30)
“添加>解决方案中的工作者角色项目...... ”仅显示工作者角色项目而非类库。虽然它们看起来一样,但它们不是。
您可以使用以下方法创建辅助角色项目:
然后,如果您愿意,您将能够在其他云项目中添加该工作者角色项目。在这种情况下,将启用“添加>解决方案中的工作者角色项目...... ”菜单选项。
现在,您还可以将类库“转换”为辅助角色项目。右键单击类库并选择卸载项目 ..然后(一旦卸载),编辑项目文件并在第一个中添加 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会将项目识别为辅助角色,并且您将能够将其添加到云项目中:
注意:您的类库需要一个派生自 RoleEntryPoint 的类。更多信息:http://blogs.msdn.com/b/jnak/archive/2010/02/11/windows-azure-roleentrypoint-method-call-order.aspx