2012-05-31 30 views
16

Tengo una biblioteca de clases C# .Net 4 que creo que configuré para ser una función de trabajador de Azure, es decir, la clase implementa Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint y tiene un método Run() y un método OnStart(). Sin embargo, cuando hago clic con el botón derecho en la carpeta Roles en mi proyecto vacío de Windows Azure y hago clic en Agregar la opción para agregar un "Proyecto de rol de trabajo en solución ..." aparece atenuado. ¿Qué debo hacer para que VS2010 se dé cuenta de que existe un posible proyecto de rol de trabajador en la solución?¿Por qué está Azure Agregar> Proyecto de rol de trabajador en solución ... en gris en VS2010?

enter image description here

Respuesta

30

El "Añadir> Proyecto de rol de trabajo en solución ..." sólo muestra los proyectos de rol de trabajo no bibliotecas de clases. A pesar de que se ven iguales, no lo son.

Puede crear un proyecto de rol de trabajo mediante el uso de lo siguiente:

  • Al crear un nuevo proyecto de la nube

enter image description here

  • haciendo clic derecho en un proyecto de nubes

enter image description here

A continuación, podrá agregar ese proyecto de rol de trabajador en otro proyecto de nube si lo desea. En ese caso, se habilitará la opción de menú "Agregar> Proyecto de función de trabajo en solución ...".

Ahora, también puede 'convertir' una biblioteca de clases a un proyecto de rol de trabajador. Haga clic derecho en la biblioteca de clases y elegir Unload Proyecto .. entonces (Una vez que se carga), Editar archivo de proyecto y añadir la RoleType elemento en el primer grupo de propiedades:

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

Finalmente - cargar el proyecto vuelva a la solución -> haga clic con el botón derecho Recargue el proyecto. (NOTA: si el archivo Xml aún está abierto, se le pedirá que lo cierre ... lo cual es perfecto. Diga sí y ciérrelo). .. Ahora se ha vuelto a agregar su biblioteca de clase pero es Biblioteca de clases de roles de usuario.

Si hace esto, Visual Studio reconocerán el proyecto como un papel de los trabajadores y usted será capaz de añadir al proyecto de nubes:

enter image description here

Nota: Su biblioteca de clases necesitará una clase derivada de RoleEntryPoint. Más información: http://blogs.msdn.com/b/jnak/archive/2010/02/11/windows-azure-roleentrypoint-method-call-order.aspx

+0

Gracias Sandrino - Voy a editar el archivo del proyecto. – dumbledad

+0

Curiosamente, no había "Editar archivo de proyecto" cuando hice clic con el botón derecho en la biblioteca de la clase, pero fue sencillo editarla en el Bloc de notas. – dumbledad

+0

Ah, disculpe, podría ser que este botón solo esté disponible a través de una extensión VS (VSCommands, PowerCommands o Productivity Power Tools).En ese caso, la edición en el bloc de notas también es una solución válida. –

Cuestiones relacionadas