Problemas de compilación de .NET 4.0 en el servidor CI

99

¿Alguien logra que las aplicaciones .NET 4.0 se compilen en un servidor CI sin instalar Visual Studio 2010 en un servidor CI?

No existe ningún SDK para .NET 4.0. Tener instalado .NET 4.0 en CI Server. Msbuild.exe funciona para proyectos simples y da la siguiente advertencia:

(Objetivo GetReferenceAssemblyPaths) -> C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (847,9): advertencia MSB3644: Los ensamblados de referencia para el marco ".NETFramework, Versión = v4.0" no se encontraron. Para resolver esto, instale el SDK o Targeting Pack para esta versión del marco o redirija su aplicación a una versión del marco para la que tenga instalado el SDK o Targeting Pack. Tenga en cuenta que los ensamblados se resolverán desde la caché de ensamblados global (GAC) y se utilizarán en lugar de los ensamblados de referencia. Por lo tanto, es posible que su ensamblaje no esté correctamente orientado al marco que desea.

DMcKenna
fuente
1
¿Cómo puedo hacer de esto un error fatal en lugar de una advertencia? Está oculto en nuestro registro de compilación y, en cambio, falla más abajo con un mensaje críptico sobre mscorlib.dll
Colonel Panic
He escrito una publicación detallada sobre esto aquí: neelbhatt.com/2018/05/04/…
Neel

Respuestas:

128

Ya no necesita instalar VS, puede instalar el "SDK de Microsoft Windows para Windows 7 y .NET Framework 4" ahora.

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=6b6c21d2-2006-4afa-9702-529fa782d63b

JeremyWeir
fuente
44
La instalación predeterminada es de 1,7 GB, pero la mayoría de estos archivos no son necesarios. Si desmarca todo excepto .NET Development> Intellisense and Reference Assemblies, todavía obtendrá el paquete de orientación .NET 4 que necesita (aproximadamente 450 MB).
Luke Sampson
1
Es posible que también desee verificar .NET Development> Tools, ya que esto traerá varias utilidades como sn.exe que son útiles para tratar con ensamblajes firmados.
Mykro
8
También hay un instalador web, por lo que solo tiene que descargar las partes necesarias. Puede descargarse aquí: microsoft.com/download/en/confirmation.aspx?id=8279
Rasmus
2
Si bien esto se llama "para Windows 7", vale la pena señalar los sistemas operativos compatibles: Windows 7, Windows Server 2003 R2 Standard Edition (32 bits x86), Windows Server 2003 R2 Standard x64 Edition, Windows Server 2008, Windows Server 2008 R2 , Windows Vista, Windows XP Service Pack 3
Aligma
2
Esa respuesta me ayuda. Tuve un problema diferente al instalar sdk 7.1 que se resolvió como se muestra aquí mathworks.com/matlabcentral/answers/95039
ari
23

SDK para .NET 4.5 disponible aquí . El instalador funciona bien con proxy con autorización básica. Sistemas operativos compatibles: Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2

PD Mi respuesta es más como un comentario a la respuesta de Jeremy , pero no tengo suficiente reputación para comentar las respuestas.

resnyanskiy
fuente
1
De la página a la que se hace referencia: "El SDK de Windows ya no se envía con un entorno de compilación de línea de comandos completo. El SDK de Windows ahora requiere que un compilador y un entorno de compilación se instalen por separado". Así que supongo que esto no es suficiente para ejecutar un servidor de compilación.
Chris
1
Esto me lo arregló. Solo tiene que seleccionar la opción "Kit de desarrollo de software .NET Framework 4.5", que requiere solo 62,3 MB y funciona bien en un servidor TFS Build 2013 instalado en Windows Server 2012 R2 para la implementación de aplicaciones de SharePoint. No es necesario anular el parámetro FrameworkPathOverride.
Koen Zomers
10

otra alternativa: sin instalar Net 4.0 SDK o vs 2010

Copie la carpeta de ensamblajes de referencia de su máquina de desarrollo al servidor de compilación (190 MB).

use la opción msbuild -p: FrameworkPathOverride para apuntar a la carpeta de ensamblajes de referencia

la ubicación de los conjuntos de referencia:

C: \ Archivos de programa (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 o C: \ Program Files \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0

encontré esto de:

Advertencias de los ensamblados de referencia del servidor de compilación de .NET 4.0 MSB3644

Si recibe este error: "No se encontró Microsoft.WebApplication.targets", simplemente copie el destino de la máquina de desarrollo https://stackoverflow.com/a/5344246/423356

si mvc3 no está instalado en el servidor de compilación; "agregar ensamblados desplegables" al proyecto mvc http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx

Si tiene un error al construir el proyecto MSTest sin el sdk o visual studio instalado; Hay varias publicaciones de blog sobre esto, pero la solución es demasiado compleja para mí. Yo uso NUnit en lugar de MSTest

cometa
fuente
Dado que mi servidor de 2012 no me dejaba instalar .Net 4 porque el instalador dijo que hay una versión superior. Hice lo que dijo @kite y copié de una PC que tenía donde estaba instalado VS 2012. Esto resolvió mis problemas.
chdev77
0

Esta página enumera los SDK de .NET para cada versión de Visual Studio. http://blogs.msdn.com/b/dotnet/p/dotnet_sdks.aspx

Para una descarga más pequeña, elija el 'paquete de desarrollador' o el 'paquete de orientación' en lugar del SDK de Windows completo.

Coronel Panic
fuente
Puede ser un consejo general instalar el paquete de desarrollador o el paquete de orientación, pero específico para .NET Framework 4.0 (esta pregunta trata sobre todo) no existe tal paquete y el SDK de Windows es inevitable.
Lex Li