2012-05-31 7 views
16

Ich habe eine C# .Net 4-Klassenbibliothek, von der ich glaube, dass ich sie als Azure Worker Role eingerichtet habe, d. H. Die Klasse implementiert Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint und verfügt über eine Run() - und eine OnStart() -Methode. Wenn ich jedoch in meinem leeren Windows Azure-Projekt mit der rechten Maustaste auf den Ordner "Roles" klicke und auf Hinzufügen klicke, wird die Option zum Hinzufügen eines Worker-Rollenprojekts in der Lösung ... ausgegraut. Was muss ich tun, damit VS2010 erkennt, dass in der Lösung ein potenzielles Worker-Rolle-Projekt vorhanden ist?Warum ist Azure Add> Worker-Rollenprojekt in Lösung ... in VS2010 ausgegraut?

enter image description here

Antwort

30

Die "hinzufügen> Worker Role-Projekt in Lösung ..." zeigt nur Projekte Arbeiter Rolle nicht Klassenbibliotheken. Obwohl sie gleich aussehen, sind sie es nicht.

Sie können eine Workerrolle Projekt erstellen, indem Sie die folgenden Schritte aus:

  • Wenn Sie ein neues Cloud-Projekt erstellen

enter image description here

  • von rechts ein Cloud-Projekt klicken

enter image description here

Dann können Sie dieses Worker-Rolle-Projekt in einem anderen Cloud-Projekt hinzufügen, wenn Sie möchten. In diesem Fall wird die Menüoption "Hinzufügen> Worker Role Projekt in Lösung ..." aktiviert.

Jetzt können Sie auch eine Klassenbibliothek in ein Worker-Rollenprojekt konvertieren. Rechtsklick auf die Klassenbibliothek und wählen Unload Projekt .. dann (einmal, dass entladen wird), Projekt bearbeiten Datei und fügen Sie das Roletype Element in der ersten Eigenschaft Gruppe:

<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> 

Endlich - legen Sie das Projekt zurück in die Lösung -> Rechtsklick Projekt neu laden. (HINWEIS: Wenn die Xml-Datei noch geöffnet ist, werden Sie aufgefordert, sie zu schließen. Das ist perfekt. Sagen Sie Ja und schließen Sie sie). .. Jetzt wurde Ihre Klassenbibliothek wieder hinzugefügt, aber es ist eine Worker-Rollenklassenbibliothek.

Wenn Sie dies tun, Visual Studio wird das Projekt als ein Arbeiter Rolle erkennen und Sie werden in der Lage es in die Cloud Projekt hinzuzufügen:

enter image description here

Hinweis: Ihre Klassenbibliothek benötigt eine Klasse von RoleEntryPoint. Weitere Informationen: http://blogs.msdn.com/b/jnak/archive/2010/02/11/windows-azure-roleentrypoint-method-call-order.aspx

+0

Danke Sandrino - Ich werde für die Bearbeitung der Projektdatei gehen. – dumbledad

+0

Interessanterweise gab es keine "Projektdatei bearbeiten", als ich mit der rechten Maustaste auf die Klassenbibliothek klickte, aber es war einfach, sie im Editor zu bearbeiten. – dumbledad

+0

Es tut uns leid, es könnte sein, dass diese Schaltfläche nur über eine VS-Erweiterung verfügbar ist (VSCommands, PowerCommands oder Productivity Power Tools).In diesem Fall ist auch die Bearbeitung im Editor eine gültige Lösung. –