Pregunta

Tengo un archivo de solución con sitios web ASP.NET.

Cuando construyo la solución con .NET 4.0 Beta 2 usando

  

" c: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.21006 \ MSBuild.exe " d: \ MyPath \ MySolution.sln

Todo funciona bien, sin errores. Luego trato de construir la misma solución con la tarea CruiseControl .NET (msbuild-script ejecutado por un servicio), la misma solución falla con:

  

D: \ MyPath \ MyWebSite.metaproj (,): errorMSB4025: no se pudo cargar el archivo del proyecto. No se pudo encontrar el archivo 'D: \ MyPath \ MyWebSite.metaproj'.

Por supuesto, no hay un archivo como ese. Supongo que * .metaproj es un archivo msbuild tipo .csproj generado dinámicamente para sitios web ...

Pero no sé cómo solucionar el error ... Traté de buscar en Google metaproj-files sin suerte. Intenté hacer el archivo manualmente, inserté un & Lt; Project & Gt; con < Nombre de la tarea = " Reconstruir " > y la compilación no generó ningún error, pero supongo que el sitio no compiló.

La misma máquina tiene proyectos .NET 3.5 y .NET 4.0 y variables de entorno para ambos marcos.

¿Fue útil?

Solución 4

La versión final de Visual Studio 2010 solucionó este error.

Otros consejos

Hay una forma de evitar esto si puede deshacerse de las dependencias del proyecto en el archivo de solución. Puede mantener las dependencias del proyecto en el archivo del proyecto pero eliminarlas del archivo de la solución. Vea este enlace para esto
Respuesta .

Tengo el mismo problema con el servidor de compilación tfs 2008. Una vez que cambié la configuración del servidor tfs builder para usar 4.0 msbuild, comencé a tener este mismo problema. Si ejecuto el msbuild manualmente, está bien y dice en el registro que está creando un archivo metaproj, pero en el proceso de compilación automatizado falla.

Russ

Leí las discusiones de CruiseControl e intenté ejecutar los mismos comandos que CruiseControl.net y resolví mi caso para mover mi

¡Los espacios en los nombres de directorio hacen que msbuild falle bajo Cruise Control! ??

Así que doy explícitamente directorios para control de crucero sin espacios. Ejemplo a continuación.

<Project name="ProjectNameHere"> <workingDirectory>c:\dev\work\ProjectNameHere\WorkDir</workingDirectory> <artifactDirectory>c:\dev\work\ProjectNameHere\Artifacts</artifactDirectory> ...

Primero creé un my_website.metaproj al lado de my_solution.sln que tenía este aspecto:

<Project DefaultTargets="Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <Target Name="Build">
    <Message Text="Building...but nothing to build" />
  </Target>

  <Target Name="Test">
    <Message Text="Testing...but nothing to test." />
  </Target>

  <Target Name="Clean">
    <Message Text="Cleaning...but nothing to clean." />
  </Target>

</Project>

Luego se quejó de no encontrar sgen.exe. Instalé Visual Studio 2010 Beta 2 en el agente de compilación y parece que ahora funciona.

[Editar] Esto en realidad no funcionó por completo. No estaba arrastrando las dependencias del proyecto del sitio web a su directorio bin.

Lo que terminamos haciendo fue eliminar el proceso de compilación de actualización y rehacer el proceso de compilación con una variación de la plantilla estándar. Esto funcionó bien.

¡En VS2013, cambiar de DefaultTemplate a TfvcTemplate.12 funcionó para mí!

Alguna información sobre TfvcTemplate.12 aquí http://blog.qetza.net/en/2013/10/03/new-features-in-team-build-2013/

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