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: Los ensamblados de referencia para el marco «.NETFramework,Version=v4.0» no fueron encontrados. Para resolver este problema, instale el SDK o la Orientación Pack para esta versión de marco o reorientar su aplicación a una versión del marco de trabajo para el que tiene el SDK o la Orientación Pack instalado. Tenga en cuenta que las asambleas serán resueltas desde la Caché de ensamblados Global (GAC) y se utiliza en lugar de los ensamblados de referencia. Por lo tanto, su asamblea no podrá ser dirigido correctamente para el marco que se propone. [D:\adis\mercury\AdisFeeds\cache\Adis.Feeds.Cache.ConsoleManager\Adis.Feeds.Cache.ConsoleManager.csproj]

El problema es que ya he instalado el .NET partes del SDK de windows 7.1. … Que yo era especial cuidado de marcar la casilla junto a el .net 4.0 ensamblados de referencia.

¿Alguien tiene alguna sugerencia de qué va mal?

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

Actualización
Yo sólo estaba corriendo por ese ángulo. He compilado la solución con msbuild con el registro de diagnóstico en mi dev máquina y, a continuación, de nuevo en el servidor de compilación. Entonces yo en comparación de los registros.

Parece la significativa diferencia que hay es la falta de cualquier referencia a la \Archivos de Programa\hace referencia a los Ensamblados camino. Específicamente en FrameworkPathOverride.

Así que he intentado añadir FrameworkPathOverride como un parámetro de línea de comandos para msbuild. Por desgracia, eso sólo me llevó a la lamentable descubrimiento de que los ensamblados de referencia de los directorios sólo parecen tener los archivos xml en ellos. Como sólo hay mscorlib.xml. No mscorlib.dll

¿Qué diablos está pasando?!?

  • Así, están presentes? C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0. Reloj hacia fuera para el sistema operativo de 64 bits molestias, también tienen c:\program files (x86)
  • Yo sólo estaba corriendo por ese ángulo. He compilado la solución con msbuild con el registro de diagnóstico en mi dev máquina y, a continuación, de nuevo en el servidor de compilación. Entonces yo en comparación de los registros.
  • posibles duplicados de .NET 4.0 build problemas en el servidor CI
  • He escrito un post detallado sobre esto aquí : neelbhatt.com/2018/05/04/…
InformationsquelleAutor Jero | 2011-05-03

8 Comentarios

  1. 33

    Ok, he encontrado una solución que funciona. Es necesario hacer dos cosas:

    1. Primera agregar FrameworkPathOverride como un parámetro de línea de comandos y señalar las referencias directorio de ensamblados.

    Algo como

      msbuild -p:FrameworkPathOverride="C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0"
    1. La segunda cosa que usted necesita hacer es encontrar una versión completa de la referencia directorio de ensamblados. Desde la copia instalado el SDK de windows y el uno instalado visual studio, he copiado la mina de mi máquina de desarrollo. Funciona bien.

    Una nota final: la razón de esto podría haber ocurrido a mí en primer lugar es que nuestro servidor es un bonito y antiguo windows server 2003 uno. Demasiado viejo para instalar el SDK de windows para afrontar?

    • usted puede tener sólo salvó el día…
    • …sí que lo hizo! gracias. tener un Servidor De 2008 R1 máquina que no me deja instalar Win 8 SDK o Visual Studio 2012
    • Tenía el mismo problema con .NET 4.5 generación ejecución en un WS 2008 R2. Seguido tus comentarios y funcionó! La única cosa que no tenía la necesidad de agregar el parámetro de línea de comandos. Tan sólo la creación de la 4.5 carpeta con los ensamblados de referencia trabajó para mí. Muchas gracias!
    • Me pareció muy útil para .NET Framework v4 y v4.5 desde el subcarpetas en los «Archivos de Programa\Ensamblados de Referencia» ruta de acceso no se rellenan en sistemas de 64 bits (sólo los «Archivos de Programa (x86)\Ensamblados de Referencia» subcarpetas están pobladas). Gracias.
    • Yo soy un novato, ¿cómo puedo hacer el primer paso? Hice el 2º paso, pero no sé cómo hacer la primera
    • Yo estaba recibiendo un error diciendo que .NET 3.5 SP1 faltaba lo que añadir el siguiente parámetro resuelto el problema. -p:FrameworkPathOverride=»C:\Windows\Microsoft.NET\Framework\v2.0.50727″
    • En Windows Server 2016, instale el .NET Framework 4.6.2 Developer Pack. microsoft.com/en-us/download/details.aspx?id=53321 , a continuación, utilizar /p:FrameworkPathOverride="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1"
    • 0 Jones, ¿dónde agregar /p:marco… es que en el visual studio, donde específicamente estoy usando la versión de windows 10

  2. 12

    Esto parece una dup de esta pregunta: .NET 4.0 build problemas en el servidor CI y en cualquier caso debe ser resuelto en la forma prescrita allí.

    Asegúrese de que el windows 7 está instalado el SDK de con (mínimo) tanto el .NET Desarrollo «Intellisense y Ensamblados de Referencia» y «Herramientas». Si ellos dicen que ya están instalados, sin embargo, los ensamblados de referencia no existe en el disco, desinstalar y volver a instalar. Me han confirmado la corrección en mi servidor de compilación.

  3. 2

    Para agregar a cixelsyd la respuesta:

    La configuración predeterminada en el SDK de Windows v7.1 instalador es que «Intellisense y Ensamblados de Referencia» es «semi-checked’ – cambiar totalmente revisadas y las advertencias se han ido 🙂

  4. 2

    Esto funciona para mí, ejecutarlo 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 una gota en el reemplazo para 4.0

    • usted puede incluso utilizar mklink para crear una sym enlace en lugar de copiar
  5. 0

    Después de días recorriendo la web en busca de respuestas, en busca ampliamente a través del proyecto los archivos de configuración con los ensamblados de referencia mencionado, el mencionado consejo para el uso de Windows 8.1 SDK para volver a instalar una falta 4.5.1 conjunto de referencia que finalmente hizo el truco.

    En mi caso, yo estaba tratando de ‘iniciar sin depurar», una nueva ASP.Net Núcleo de la Aplicación Web (.NET Core), creado para seguir la tutorial en: https://docs.asp.net/en/latest/tutorials/first-mvc-app/start-mvc.html

    Cuando se utiliza el SDK, he desmarcado TODO aceptar para los ensamblados de referencia. Esta fue la única manera que he encontrado para instalar 4.5.1 porque otros métodos fallan debido al hecho de que yo ya había 4.5.2 y versiones superiores instalado.

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

    advertencia MSB3644: Los ensamblados de referencia para el marco
    «.NETFramework,Version=v4.5.1» no fueron encontrados. Para resolver este problema, instale
    el SDK o la Orientación Pack para esta versión de marco o reorientar su
    aplicación a una versión del marco de trabajo para el que tiene el SDK
    o la Orientación Pack instalado.

  6. 0

    en la carpeta:

        C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework

    hay una serie de carpetas, una para cada instalado el framework.
    La carpeta «v4.0» contiene sólo los archivos xml y la carpeta «v4.5» contienen dll y archivos xml.

    He creado un enlace simbólico a esta carpeta.

    1) Ejecutar el símbolo del sistema como administrador.

    2) Ejecutar el siguiente script:

      cd C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework
      ren v4.0 v4.0_old
      mklink /d v4.0 v4.5

    Simbólico de la carpeta con el nombre «v4.0» es creado y seleccione los archivos dll de v4.5

Dejar respuesta

Please enter your comment!
Please enter your name here