¿Por qué el paquete de implementación de mi buildserver tiene ensamblados adicionales?


Tengo un asp.net paquete de implementación mvc que estoy tratando de construir con Team City. El paquete se construye sin ningún problema, pero la carpeta bin contiene archivos que no son necesarios (y hacen que el sitio falle cuando está presente).

Si compilo el mismo paquete desde visual studio, los archivos adicionales no están presentes.

Los archivos adicionales son:

Microsoft.VisualBasic.Activities.Compiler.dll
mscorlib.dll
normidna.nlp
normnfc.nlp
normnfd.nlp
normnfkc.nlp
normnfkd.nlp
System.Data.dll
System.Data.OracleClient.dll
System.EnterpriseServices.dll
System.EnterpriseServices.Wrapper.dll
System.Transactions.dll

¿Qué puedo hacer para evitar estas asambleas adicionales y .nlp archivos de ser incluidos en el paquete?

ACTUALIZACIÓN

Después de explorar un poco más los archivos de registro, he encontrado que la tarea de compilación _CopyFilesMarkedCopyLocal está copiando los archivos en el directorio bin. Lo extraño es que los ensamblados no están marcados como copia local.

Author: ilivewithian, 2011-04-09

4 answers

Después de investigar un montón más, me di cuenta de que el servidor de compilación tenía activado.Net framework, pero no el framework SDK. Después de instalar el SDK en el servidor de compilación, los ensamblados adicionales ya no se agregaron.

 60
Author: ilivewithian,
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
2011-04-10 16:28:10

Experimenté el mismo problema en un servidor de compilación que only had 4.5.1 sdk instaló.

Fix

Agregue el parámetro p:FrameworkPathOverride a msbuild. Por ejemplo:

msbuild /p:FrameworkPathOverride="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1"
 27
Author: Edward Wilde,
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
2014-05-14 12:47:06

La solución más fácil era copiar mi local C:\Program Files (x86)\Reference Assemblies\Microsoft \ Framework.NetFramework hasta el servidor de compilación

 3
Author: matt-dot-net,
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-08-02 20:59:59

En un servidor de compilación que ejecuta Windows Server 2012 R2 Experimenté un problema similar: la siguiente tarea era copiar archivos no deseados al directorio de salida:

[06:47:07]_CopyFilesMarkedCopyLocal
[06:47:07]Copy
[...]
[06:47:07]Copying file from "C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll" to "bin\Release\mscorlib.dll".
[06:47:07]Copying file from "C:\Windows\Microsoft.NET\Framework\v4.0.30319\normidna.nlp" to "bin\Release\normidna.nlp".
[06:47:07]Copying file from "C:\Windows\Microsoft.NET\Framework\v4.0.30319\normnfc.nlp" to "bin\Release\normnfc.nlp".
[06:47:07]Copying file from "C:\Windows\Microsoft.NET\Framework\v4.0.30319\normnfd.nlp" to "bin\Release\normnfd.nlp".
[06:47:07]Copying file from "C:\Windows\Microsoft.NET\Framework\v4.0.30319\normnfkc.nlp" to "bin\Release\normnfkc.nlp".
[06:47:07]Copying file from "C:\Windows\Microsoft.NET\Framework\v4.0.30319\normnfkd.nlp" to "bin\Release\normnfkd.nlp".

Similar a la respuesta de @ ilivewithian faltaba un paquete: Microsoft. NET Framework 4.5.2 Developer Pack para Windows Vista SP2, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2008 SP2 Windows Server 2008 R2 SP1, Windows Server 2012 y Windows Server 2012 R2.

 2
Author: CodeFox,
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-08-21 05:34:38