visual versión update una studio seleccionar seleccionada proyecto net hay framework existente destino debe crear change cambiar antes .net .net-4.0 msbuild

.net - versión - version framework visual studio



Advertencias de ensamblajes de referencia del servidor de compilación.NET 4.0 MSB3644 (7)

Asegúrese de que haya instalado .NET Framework Developer Pack , no un paquete regular .

Si está utilizando Visual Studio, Code u otro IDE, también debe instalar un paquete de orientación de .NET .

Página de descargas: https://www.microsoft.com/net/download

Relacionado:

  • Los ensamblados de referencia para el marco ".NETFramework, Version = v4.6.2" no se encontraron
  • Paquete de orientación para .NET 4.5.2 no instalado

Estoy recibiendo un montón de errores en mi servidor de compilación:

C: / WINDOWS / Microsoft.NET / Framework / v4.0.30319 / Microsoft.Common.targets (847,9): advertencia MSB3644: No se encontraron los ensamblajes de referencia para el marco ".NETFramework, Version = v4.0". Para resolver esto, instale el SDK o Targeting Pack para esta versión de marco o vuelva a dirigir su aplicación a una versión del marco para el que tiene instalado el SDK o Targeting Pack. Tenga en cuenta que los ensamblajes se resolverán a partir del Caché de ensamblados global (GAC) y se utilizarán en lugar de ensamblados de referencia. Por lo tanto, es posible que su ensamblaje no esté correctamente orientado para el marco que desea. [D: / adis / mercury / AdisFeeds / cache / Adis.Feeds.Cache.ConsoleManager / Adis.Feeds.Cache.ConsoleManager.csproj]

El problema es que ya he instalado las partes .NET del SDK 7.1 de Windows. ... Tuve especial cuidado en marcar la casilla junto a los ensamblados de referencia de .net 4.0.

¿Alguien tiene alguna sugerencia sobre lo que está mal?

Para el registro, estoy usando Nant para ejecutar los scripts de compilación (ver 0.86) y nant.contrib (0.85) para la tarea msbuild nant.

Actualización solo estaba corriendo ese ángulo. Compilé la solución usando msbuild con el registro de diagnóstico en mi máquina dev y luego otra vez en el servidor de compilación. Luego comparé los registros.

Parece que la diferencia significativa es la falta de referencias a la ruta / Archivos de programa / Referencias de ensamblajes. Específicamente en FrameworkPathOverride.

Así que intenté agregar FrameworkPathOverride como un parámetro de línea de comandos a msbuild. Desafortunadamente, eso me llevó al desafortunado descubrimiento de que los directorios de ensamblajes de referencia solo parecen tener los archivos xml en ellos. Como en, solo hay mscorlib.xml. No mscorlib.dll

¿¡¿Qué diablos está pasando?!?


Después de días de buscar respuestas en la web, buscar detenidamente en los archivos de configuración del proyecto con los conjuntos de referencia mencionados, el consejo mencionado anteriormente de usar Windows 8.1 SDK para volver a instalar un conjunto de referencia 4.5.1 faltante finalmente funcionó.

En mi caso, intenté "iniciar sin depurar" una nueva aplicación web ASP.Net Core (.NET Core) creada para seguir el tutorial en: tutorial

Al usar el SDK, desactivé TODO lo que se acepta para los ensamblados de referencia. Esta fue la única forma que encontré para instalar 4.5.1 porque otros métodos fallarían debido al hecho de que ya tenía 4.5.2 y versiones superiores instaladas.

Felicitaciones a esta página por la respuesta que finalmente funcionó!

advertencia MSB3644: No se encontraron los ensamblados de referencia para el marco ".NETFramework, Version = v4.5.1". Para resolver esto, instale el SDK o Targeting Pack para esta versión de marco o vuelva a dirigir su aplicación a una versión del marco para el que tiene instalado el SDK o Targeting Pack.


Esto funciona para mí, ejecútelo en powershell (sin usar FrameworkPathOverride):

cp -r "C:/Program Files (x86)/Reference Assemblies/Microsoft/Framework/.NETFramework/v4.5.1/" "C:/Program Files (x86)/Reference Assemblies/Microsoft/Framework/.NETFramework/v4.0"

Es porque 4.5 (o 4.5.1) es un reemplazo directo para 4.0


Esto parece una trampa de esta pregunta: los problemas de compilación de .NET 4.0 en el servidor CI y, en cualquier caso, deben resolverse de la manera prescrita allí.

Asegúrese de que el Windows 7 SDK esté instalado (como mínimo) tanto en el "Desarrollo de .NET" Ensamblajes de referencia e inteligencia "como en" Herramientas ". Si dicen que ya están instalados, los ensamblajes de referencia no existen en su disco, luego desinstálelos y vuelva a instalarlos. He confirmado la corrección en mi servidor de compilación.



Ok he encontrado una solución que funciona. Tienes que hacer dos cosas:

  1. Primero agregue FrameworkPathOverride como un parámetro de línea de comando y apúntelo al directorio de ensamblados de referencias.

Algo como

msbuild -p:FrameworkPathOverride="C:/Program Files/Reference Assemblies/Microsoft/Framework/.NETFramework/v4.0"

  1. Lo segundo que debe hacer es encontrar una versión completa del directorio de ensamblajes de referencia. Desde la copia instalada por el SDK de Windows y la instalada por Visual Studio, simplemente copié la mía de mi máquina de desarrollo. Funciona bien.

Una nota final: la razón por la que esto podría haberme ocurrido en primer lugar es que nuestro servidor de compilación es un servidor de Windows 2003 bastante bueno. ¿Demasiado viejo para la instalación del SDK de Windows?


Para agregar a la respuesta de cixelsyd:

La configuración predeterminada en el instalador de Windows SDK v7.1 es que "Intellisense and Reference Assemblies" está ''semi-chequeado''; cámbielo por completo y las advertencias desaparecen :-)