我有一个 C# .Net 4 类库,我认为我已将其设置为 Azure Worker Role,即该类实现 Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint 并具有 Run() 和 OnStart() 方法。但是,当我右键单击我的空 Windows Azure 项目中的角色文件夹并单击添加选项以添加“解决方案中的工作人员角色项目...”时,它是灰色的。我需要为 VS2010 做些什么才能意识到解决方案中有一个潜在的工人角色项目?
问问题
4254 次
1 回答
31
“解决方案中的添加 > 工作人员角色项目... ”仅显示工作人员角色项目而不是类库。尽管它们看起来一样,但它们并非如此。
您可以使用以下命令创建工作者角色项目:
- 创建新的云项目时
- 通过右键单击云项目
然后,如果您愿意,您将能够将该工作人员角色项目添加到其他云项目中。在这种情况下,“解决方案中的添加 > 工作者角色项目... ”菜单选项将被启用。
现在,您还可以将类库“转换”为辅助角色项目。右键单击类库并选择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>
最后 - 将项目重新加载到解决方案中 -> 右键单击 Reload Project。(注意:如果 Xml 文件仍然打开,您会被要求关闭它。这是完美的。说是并关闭它)。.. 现在您的类库已重新添加回来,但它是一个工人角色类库。
如果执行此操作,Visual Studio 会将项目识别为辅助角色,并且您将能够将其添加到云项目中:
注意:您的类库将需要派生自RoleEntryPoint的类。更多信息:http: //blogs.msdn.com/b/jnak/archive/2010/02/11/windows-azure-roleentrypoint-method-call-order.aspx
于 2012-05-31T09:44:05.540 回答