Implementación de Azure Git: references faltantes en la 2da Asamblea

Estoy intentando configurar el deployment de Bitbucket en un website de Azure. Conseguí vincular con éxito Bitbucket y Azure, pero cuando presiono Bitbucket, aparece el siguiente error en el sitio de Azure:

enter image description here

Si hago clic en 'Ver logging', muestra los siguientes errores de compilation:

D:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1578,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is requinetworking by your code, you may get comstacktion errors. [C:\DWASFiles\Sites\<projname>\VirtualDirectory0\site\repository\<projname>.Common\<projname>.Common.csproj] D:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1578,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "WebMatrix.WebData, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is requinetworking by your code, you may get comstacktion errors. [C:\DWASFiles\Sites\<projname>\VirtualDirectory0\site\repository\<projname>.Common\<projname>.Common.csproj] CustomMembershipProvider.cs(5,7): error CS0246: The type or namespace name 'WebMatrix' could not be found (are you missing a using directive or an assembly reference?) [C:\DWASFiles\Sites\<projname>\VirtualDirectory0\site\repository\<projname>.Common\<projname>.Common.csproj] CustomMembershipProvider.cs(9,38): error CS0246: The type or namespace name 'ExtendedMembershipProvider' could not be found (are you missing a using directive or an assembly reference?) [C:\DWASFiles\Sites\<projname>\VirtualDirectory0\site\repository\<projname>.Common\<projname>.Common.csproj] Models\AccountModels.cs(3,18): error CS0234: The type or namespace name 'Mvc' does not exist in the namespace 'System.Web' (are you missing an assembly reference?) [C:\DWASFiles\Sites\<projname>\VirtualDirectory0\site\repository\<projname>.Common\<projname>.Common.csproj] CustomMembershipProvider.cs(198,37): error CS0246: The type or namespace name 'OAuthAccountData' could not be found (are you missing a using directive or an assembly reference?) [C:\DWASFiles\Sites\<projname>\VirtualDirectory0\site\repository\<projname>.Common\<projname>.Common.csproj] Models\AccountModels.cs(40,10): error CS0246: The type or namespace name 'Compare' could not be found (are you missing a using directive or an assembly reference?) [C:\DWASFiles\Sites\<projname>\VirtualDirectory0\site\repository\<projname>.Common\<projname>.Common.csproj] Models\AccountModels.cs(40,10): error CS0246: The type or namespace name 'CompareAttribute' could not be found (are you missing a using directive or an assembly reference?) [C:\DWASFiles\Sites\<projname>\VirtualDirectory0\site\repository\<projname>.Common\<projname>.Common.csproj] Models\AccountModels.cs(73,10): error CS0246: The type or namespace name 'Compare' could not be found (are you missing a using directive or an assembly reference?) [C:\DWASFiles\Sites\<projname>\VirtualDirectory0\site\repository\<projname>.Common\<projname>.Common.csproj] Models\AccountModels.cs(73,10): error CS0246: The type or namespace name 'CompareAttribute' could not be found (are you missing a using directive or an assembly reference?) [C:\DWASFiles\Sites\<projname>\VirtualDirectory0\site\repository\<projname>.Common\<projname>.Common.csproj] 

Tenga en count que estos errores de compilation están en contra de otro ensamblaje en mi proyecto (el ensamblado donde pongo la lógica comercial).

Cuando busqué en Google, la única mención que encontré fue sobre tener que establecer el indicador de "copy local" en verdadero para esas references. Intenté esto, pero todavía tengo los mismos errores.

Todo esto comstack bien localmente. ¿Algunas ideas?

Actualizar

Para agregar un poco más de información, la estructura de mi proyecto que está en el repository de Git es la siguiente:

 +ProjName ProjName.csproj web.config ...etc... +ProjName.Common ProjName.Common.csproj +ProjName.Tests ProjName.Tests.csproj +packages <-- these are Nuget packages ProjName.sln 

Los errores de compilation que muestra Azure dicen que ProjName.vcproj falló, pero se refieren a la reference de ensamblado ProjName.Common.

Tenga en count que este layout es lo que VisualStudio creó (es decir, un subdirectory de proyecto adicional para webroot).

No estoy seguro de qué hace Azure cuando realiza un deployment de Git. ¿Reconoce que el directory ProjName es la raíz web, y también analiza el ProjName.sln comstackndo cualquier otro ensamblaje que esté en la solución (de la misma forma que Visual Studio lo hace)?

Además, no agregué ninguna carpeta "bin" a Git. Sin embargo, solo intenté esto como una testing, y no modificó los errores de compilation que produjo Azure.

Actualizado 25/11/2012: Después de mirar el repository de Dan, el problema es que el proyecto de biblioteca está utilizando Mvc 4 del GAC en lugar de usar el package NuGet. Cambiar al package NuGet hace que funcione bien en Azure.

En teoría, MVC4 podría estar en el GAC en las máquinas Azure y esto no sería un problema. Y tal vez llegarán allí en algún momento. Aunque, en general, el equipo de MVC impulsa cada vez más un model basado en NuGet en el que no confía en que las cosas estén en el GAC.

Respuesta original:

Por lo general, debes evitar el uso de binarys en tu git repo, en lugar de confiar en NuGet para recuperarlos. Consulte https://github.com/KuduApps/Mvc4ApplicationFx40WithLib para ver un proyecto de muestra que lo haga y que funcione bien en los sitios web de Azure.

Pero, según la estructura de su proyecto, veo que sus proyectos parecen usar C ++ (.vcproj). Si es así, entonces el problema probable es que es posible que C ++ no sea compatible hoy en los sitios web de Azure cuando se publica a través de git. Hasta ahora, no creo que esto haya surgido ya que las personas deben usar C # y VB. Si ese es realmente el problema, entonces sugiero que abra un problema en https://github.com/projectkudu/kudu para que podamos hacer un seguimiento adecuado de esto.

Así que mi ensamblado .Common tenía una reference a System.Web.Mvc y WebMatrix.WebData, y parece que Azure no es compatible. Tenía un código de membresía que utilizaba esas references en el ensamblado común en lugar del proyecto web. Al eliminarlos, se elimina el error. Tendré que refactorizar el código ligeramente para que la biblioteca común no requiera estas references.

Tuve este problema hoy en el campo de entrenamiento azul.

Al habilitar la Restauración de packages Nuget en la solución y el compromiso de esos cambios en el repository de github se habilitó una implementación exitosa