*.DLL.archivo de licencias en el directorio obj no creado con msbuild en TeamCity


Estoy trabajando en la actualización de nuestros proyectos de TeamCity de VS2012 a VS2015 y me estoy topando con un problema al compilar nuestra aplicación MVC.

El antiguo MSBuild (v4.0.30319.34209) genera un archivo en el directorio obj llamado MyApplication.Web.Mvc.dll.licenses que aparentemente es necesario para la construcción, pero no tenemos idea de para qué se usa el archivo.

New MSBuild (v14.0.23107.0) no crea este archivo MyApplication.Web.Mvc.dll.licenses, por lo que la compilación falla con el siguiente error:

CSC error CS1566: Error reading resource 'MyApplication.Web.Mvc.dll.licenses' 
-- 'Could not find file 'C:\BuildAgent\work\58ddf5f1234d8c8a\application\MyApplication\MyApplication.Web.Mvc\obj\Release\MyApplication.Web.Mvc.dll.licenses'.' 

He estado ejecutando el compila manualmente a través de cmd en la máquina, y el archivo dll.licenses se crea cada vez que se ejecuta la compilación utilizando el antiguo msbuild, pero no el nuevo.

El archivo se crea en las máquinas de desarrollo que ejecutan VS2015, pero no en el servidor de compilación de Teamcity. ¿Así que me parece que algo más está desactualizado?

Author: gwin003, 2015-09-03

7 answers

Después de buscar un poco más en Google, me topé con este hilo en MSDN.

La solución sugerida aquí es instalar el SDK de Windows 10. Hicimos esto en nuestro servidor de compilación de TeamCity ejecutando Windows Server 2012 R2 utilizando las opciones de instalación predeterminadas, y después de un reinicio, nuestra compilación volvió a funcionar.

Espero que esto ayude :)

 38
Author: Njål Nordmark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-10 12:53:21

La respuesta "Instalar el SDK de Windows 10" es correcta, básicamente. Pero hay una trampa: Hay más de una versión existente de este Sdk: https://developer.microsoft.com/en-us/windows/downloads/sdk-archive

Por la escritura de este comentario:

  • Julio de 2015 (Versión 10.0.26624.0) contiene. NET Framework 4.6 SDK
  • Nov. 2015 (Versión 10.0.10586.212) contiene. NET Framework 4.6.1 SDK
  • Ago. 2016 (Versión 10.0.14393.0) contiene . NET Framework 4.6.2 SDK

Compruebe su salida VS 2015 y qué versión de LC.se llama exe. A continuación, instale el SDK apropiado en el servidor de compilación. No se olvide de instalar Microsoft Build Tools 2015 también.

Nota: Mi compilación está dirigida a.net 4.5, pero se necesita la versión anterior para compilar en TeamCity con herramientas de 2015.

 9
Author: Alois M,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-13 15:21:21

En mi caso, TFS estaba usando el compilador de licencias lc.exe de la carpeta anterior del SDK

C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\lc.exe

En lugar de

C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\x64\LC.exe

Este problema se resolvió añadiendo el siguiente argumento de msbuild a la definición de compilación:

/p:FrameworkOverride="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.2"

También puede deshacerse de estos problemas y hacer su vida más fácil instalando visual studio en el servidor de compilación y agregando un paso de compilación de visual studio para reemplazar su paso de msbuild de 2015

 5
Author: Orlando,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-23 16:19:43

Estoy usando Atlassian Bamboo como nuestro servidor de compilación, pero por lo demás tenía exactamente el mismo problema descrito aquí. Probé todas las soluciones en este hilo, pero no pude hacer que nada funcionara. Al final, usé la nueva versión de MSBuild que viene con Visual Studio 2017 y de repente mi dll de licencia se creó correctamente. En mi caso, el MSBuild.exe se puede encontrar en:

C:\Program Archivos (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin \ MSBuild.exe

 5
Author: Tom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-24 13:27:39

Podría ser útil para alguien:

Después de instalar el SDK de Windows 10 y reiniciar mi servidor, he agregado /p:VisualStudioVersion=14.0 /p:TargetFrameworkVersion=v4.5.2 a mi msbuild.exe. Eso lo resolvió en mi caso.

 1
Author: user1613512,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-25 13:19:53

Tuvimos el mismo problema al construir con VisualBuild. Encontré una solución sin instalar el SDK de Win10:

En la configuración de Compilación de las propiedades del proyecto, agregamos una Línea de Comandos "Pre-build Event" como esta:

pushd "%VS120COMNTOOLS%..\..\VC"
call vcvarsall.bat
popd
pushd $(ProjectDir)\"My Project"
lc /target:$(TargetFileName) /complist:licenses.licx /outdir:"..\obj\$(ConfigurationName)"
popd
popd

Este comando utiliza las herramientas (antiguas) VS12 e inicia la herramienta de compilador lc manualmente antes de la compilación del proyecto y compila las licencias.archivo licx en el *.archivo de recursos de licencias

 1
Author: Josef Haslinger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-05 14:09:06

Esta es una situación estrechamente relacionada pero ligeramente diferente en la que estoy usando Jenkins para controlar la compilación...

Tuve que hacer varios cambios.

  1. Instalado Windows 10 SDK en el servidor de compilación. En mi caso, la instalación del SDK "reveló" el error subyacente que es que MSBuild no estaba generando el *.DLL.archivo de licencias.
  2. Añadido /tv:14.0 ( /ToolsVersion:14.0 ) a mis parámetros de compilación.

/ p: Configuration = Release /p:VisualStudioVersion=14.0 / tv: 14.0 / nivel de detalle:Normal

  1. Creó el archivo de licencia manualmente como un paso antes de ejecutar el paso de MSBuild. El siguiente comando crea el archivo "myproject.DLL.licencia".

Cd "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin \ NETFX 4.6.2 Tools"

.\ lc.exe / target: MyProject.dll /complist:"C:\Program Files (x86)\Jenkins\jobs\MyProject\workspace\MyProject \ licenses.licx" /i:"C:\Program Files \ nsoftware \ E-Payment Integrator V6. NET Edition \ lib\nsoftware.InPayWeb.dll " / outdir:"C:\Program Files (x86)\Jenkins \ jobs \ MyProject \ workspace \ MyProject \ obj \ Release"

 0
Author: Timothy Lee Russell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-30 19:23:01