17

Azureワーカーロールとして設定したと思われるC#.Net 4クラスライブラリがあります。つまり、クラスはMicrosoft.WindowsAzure.ServiceRuntime.RoleEntryPointを実装し、Run()メソッドとOnStart()メソッドを持っています。ただし、空のWindows AzureプロジェクトのRolesフォルダーを右クリックし、[追加]をクリックすると、[ソリューション内のワーカーロールプロジェクト…]がグレー表示されます。ソリューションに潜在的なワーカーロールプロジェクトがあることを実現するには、VS2010で何をする必要がありますか?

ここに画像の説明を入力してください

4

1 に答える 1

31

ソリューション内の追加>ワーカーロールプロジェクト...」には、クラスライブラリではなくワーカーロールプロジェクトのみが表示されます。見た目は同じですが、そうではありません。

以下を使用して、ワーカーロールプロジェクトを作成できます。

  • 新しいクラウドプロジェクトを作成するとき

ここに画像の説明を入力してください

  • クラウドプロジェクトを右クリックする

ここに画像の説明を入力してください

その後、必要に応じて、そのワーカーロールプロジェクトを他のクラウドプロジェクトに追加できます。その場合、「ソリューション内の追加>ワーカーロールプロジェクト...」メニューオプションが有効になります。

これで、クラスライブラリをワーカーロールプロジェクトに「変換」することもできます。クラスライブラリを右クリックし、[プロジェクトのアンロード]を選択します。次に(アンロードされたら)、 [プロジェクトファイルの編集]を選択し、最初のプロパティグループに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

于 2012-05-31T09:44:05.540 に答える