Pregunta

No he configurado para construir mi proyecto ASP.NET MVC y funciona bien localmente. Agrego nant a una carpeta de herramientas y lo agrego al control de versiones. TeamCity recoge mis cambios y comienza la compilación pero falla.

Creo que estoy usando la última versión de Nant y he agregado el .net framework 3.5 a nant.exe.config. ¿Qué me estoy perdiendo en el servidor y sí, el .net framework está instalado en el servidor ya que la aplicación asp.net mvc funciona si construyo e implemento manualmente allí?

El archivo de compilación es el siguiente:          

<target name="compile" description="Compiles using the AutomatedDebug Configuration">
    <msbuild project="Tolt.Sims.sln" />
</target>

Aquí está el error:

BUILD FAILED Failed to initialize the 'Microsoft .NET Framework 2.0' (net-2.0) target framework.
Property evaluation failed. Expression: ${path::combine(sdkInstallRoot, 'bin')} ^^^^^^^^^^^^^^ Property 'sdkInstallRoot' has not been set.
For more information regarding the cause of the build failure, run the build again in debug mode. Try 'nant -help' for more information
¿Fue útil?

Solución

Si está utilizando la versión beta de NAnt (que actualmente es la única forma en que obtendrá soporte para apuntar a algo más grande que el marco 2.0), tal vez se encuentre con un problema de registro. Un problema similar fue informado por Tim Barcz .

Las cosas se redujeron a NAntContrib (proveedor de la tarea msbuild) que apunta a la versión 2.0 de msbuild. Echa un vistazo a su solución para ver si se aplica a tu escenario.

Otros consejos

Potencialmente, no tiene instalado .NET Framework 2.0 SDK.

Puede instalarlo desde http: // www.microsoft.com/downloads/details.aspx?familyid=fe6f2099-b7b4-4f47-a244-c96d69c35dec&displaylang=en

Solucioné esto agregando lo siguiente en el registro:

Nuevo valor de cadena en: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft.NETFramework

Nombre: sdkInstallRootv2.0

Con el valor: C: \ Archivos de programa \ Microsoft Visual Studio 8 \ SDK \ v2.0 \

Parecía surgir a la vida ...

w: //

Esto se solucionó después de la versión 0.86 beta1. El 1 de abril de 2010, se lanzó 0.90 con la solución en caso de que actualizar nant sea una opción para usted. Para proporcionar más detalles, la versión de revisión en 0.90 parece haber sido simples cambios en el archivo nant.exe.config. Se agregó el texto en negrita a continuación y probablemente solucionará el problema sin tener que instalar el SDK 2.0.

  

<directory name="${path::combine(sdkInstallRoot, 'bin')}" if = " $ {property :: exist ('sdkInstallRoot')} " / >

Actualice la sección net-2.0 para solucionarlo.

Me he encontrado con problemas similares con NAnt. Sé que esta no es la solución Best , pero es una que funciona si necesita que su proyecto se mueva.

Descubrí que instalar un entorno de desarrollo (C # Express no funcionó para mí, pero VS 2008 sí) en el servidor hace que este problema desaparezca. (Sí, me doy cuenta de que esto va en contra de las mejores prácticas normales, pero funciona y permite que mis scripts se ejecuten para que pueda volver a la codificación).

Pensé que compartiría en caso de que alguien más estuviera en una situación similar ... (esto me ha funcionado tanto con CruiseControl.Net como con Hudson).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top