2012-07-05 8 views
10

estoy recibiendo el siguiente error producido por una acumulación Estoy corriendo a través TeamCity en mi máquina de desarrollo:Conjunto TargetProfile para un proyecto de Azure

[ResolveServiceConfiguration] WATMessage 
[16:02:05][WATMessage] C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Windows Azure Tools\1.7\Microsoft.WindowsAzure.targets(354, 5): No default service configuration "ServiceConfiguration.cscfg" could be found in the project. 
[16:02:05][Xxx.Azure.Production\Xxx.Azure.Production.ccproj] Project Xxx.Azure.Production\Xxx.Azure.Production.ccproj failed. 

La misma solución se basa bien en VS.NET.

Creo que lo que tengo que hacer es configurar el TargetProfile para cada uno de los proyectos de Azure (hay más de un problema) para anular el valor predeterminado de Cloud pero no puedo encontrar dónde hacerlo.

Entonces, ¿cómo configuro el perfil de destino para un proyecto de Azure?

+0

Para solucionar este problema, he creado ServiceConfiguration.Cloud.cscfg para cada proyecto de Azure utilizando el archivo .cscfg que se estaba estableciendo en la definición. – Boggin

+0

¿Quiere decir que todo funciona en Visual Studio, pero no funciona en una herramienta de terceros TeamCity? Si se trata de un problema de Windows Azure, brinde más información. –

+0

Creo que es una diferencia entre cómo VS y TeamCity crean una solución usando el archivo .sln. En VS, parece recoger qué .cscfg usar para cada .ccproj. En TeamCity usa el predeterminado (Cloud). Necesito entender qué es diferente entre una compilación de VS.NET y una compilación de TeamCity (en la ** misma máquina **) específicamente para recoger el .cscfg correcto a usar. Creo que puedo especificar TargetProfile como parámetro para MSBuild, pero ya no estoy usando .sln. – Boggin

Respuesta

2

Para evitar este problema, he creado ServiceConfiguration.Cloud.cscfg para cada proyecto de Azure utilizando el .cscfg que se estaba estableciendo en la definición.

26

¿Ha intentado establecer el perfil de destino en la línea de comandos?

/p:TargetProfile=MyProfile 
+0

Como tengo una única configuración de compilación que produce paquetes de Azure para múltiples perfiles, acabo de agregar este argumento a los pasos de compilación individuales de VS en mi configuración de compilación de TeamCity.Si tuviera que ponerlo como una variable del "sistema" de TeamCity, me limitaría a crear paquetes para un solo perfil por configuración de compilación. –

+0

Esto también se puede usar con un parámetro que se ingresa a la configuración de compilación, no necesita ser variables del sistema. –

+1

tuve el mismo problema cuando estaba tratando de invocar msbuild desde un script de PowerShell y esto lo solucionó para mí –

11

Dado un archivo de configuración del servicio Azure llamado "ServiceConfiguration.Production.cscfg":

  1. En su configuración de generación de proyectos TeamCity, vaya a construir Parámetros (paso 7)
  2. Añadir una propiedad del sistema con el nombre "system.TargetProfile" y un valor de "Producción"

Este patrón se aplica a cualquier configuración con nombre en el formato ServiceConfiguration. [yo nuestro perfil] .cscfg.

+4

En mi opinión: esta debería ser la respuesta. – Andries

0

En mi caso, cambié el nombre del archivo ServiceConfiguration.Cloud.csfg, y dado que el agente de compilación buscará primero ese archivo porque el perfil de destino predeterminado es "nube", tuve que volver a crear ServiceConfiguration.Cloud.csfg presentar en el mismo lugar, y luego entró en el archivo .ccproj y ha añadido esta línea en el nodo <ItemGroup>:

<ServiceConfiguration Include="ServiceConfiguration.Cloud.csfg" /> 

entonces me reconstruyeron y el problema se solucionó.

Cuestiones relacionadas