¿Alguien ha visto este error y sabe cómo solucionarlo?
La tarea "TransformXml" no se pudo cargar desde el ensamblado C: \ Archivos de programa (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web \ Microsoft.Web.Publishing.Tasks.dll.
No se pudo cargar el archivo o ensamblado 'archivo: /// C: \ Archivos de programa (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web \ Microsoft.Web.Publishing.Tasks.dll' o una de sus dependencias. El sistema no puede encontrar el archivo especificado.
Confirme que la declaración sea correcta, que el ensamblado y todas sus dependencias estén disponibles y que la tarea contenga una clase pública que implemente Microsoft.Build.Framework.ITask.
Leí en otra parte que el problema es cuando no tienes instalado SQL Server. Pero tengo SQL Express 2012 x64 instalado con SP1. También estoy ejecutando VS 2013 Professional.
He ejecutado exactamente esta misma solución en VS 2012 express sin problemas.
fuente
Respuestas:
Las respuestas proporcionadas por Dai Bok y emalamisura funcionan bien siempre que use Visual Studio 2012. Para VS 2013, esto también falla. Para que esto funcione con todas las versiones de Visual Studio, debe:
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.targets" />
Eso establecerá la versión correcta de Visual Studio de forma dinámica y adecuada.
fuente
$(VisualStudioVersion)
está devolviendo una versión anterior :(Para que la mía funcione, simplemente copié mi
v10.0
carpeta y le cambié el nombre av11.0
, y las cosas parecen funcionar bien a partir de ese momento. Esa es la solución rápida por ahora.Como esta probablemente no sea la mejor solución, y aunque funciona, iba a intentar instalar el SDK de Microsoft Windows para Windows 7 y .NET Framework 4 Windows SDK para Windows 7 y .NET Framework 4, pero está tardando mucho en descargar.
fuente
He estado combatiendo este problema en nuestro servidor de compilación durante varios días, así que pensé que documentaría la resolución a la que llegué. Primero, mi servidor de compilación tiene instaladas las extensiones de publicación web . Puedo usar la tarea TransformXml al contenido de mi corazón dentro de un proyecto de aplicación web.
Para usarlo fuera de un proyecto de aplicación web, intenté agregar el elemento UsingTask a mi proyecto y apuntarlo al lugar correcto usando las propiedades de compilación de ms (como demostró Benjamin). Sin embargo, no estaban en mi servidor de compilación (aquellos con fácil acceso al sistema de archivos de su servidor de compilación probablemente puedan omitir esto y simplemente instalar el paquete relevante en Visual Studio). Incluso fui tan lejos como para codificar versiones de Visual Studio, pero siempre me dejaba caer ese error.
Finalmente me di por vencido, saqué las DLL de mi PC local:
Los subí al control de código fuente y agregué esa carpeta al espacio de trabajo de mi compilación (Editar definición de compilación -> Configuración de origen -> Carpeta de control de código fuente). A partir de ahí, ni siquiera necesito hacer referencia a la carpeta; así es como se ve mi UsingTask:
Ahora puedo usar la tarea TransformXml al contenido de mi corazón desde cualquier proyecto.
fuente
Para solucionar el problema,
Esto resolvió el problema, ya que crea los dll en la ruta mencionada.
fuente
Tools → Get Tools and Features... → Individual Components: Windows 10 SDK (10.0.14393.0) and ASP.NET and web development tools
. Esto parece haber funcionado.Debido a que solo hay v12.0, v14.0 y v15.0 en mi carpeta de VisualStudio, edito el archivo de mi proyecto y cambio la ruta de referencia de v10.0 a v14.0. Entonces el proyecto se construye con éxito.
Antes de:
Después:
fuente
Para VS2019
Reemplacé
MSBuildToolsVersion
conVisualStudioVersion
.fuente
La respuesta correcta a esto es descargar el proyecto en cuestión y luego editar el archivo csproj, buscar una entrada en la que estén haciendo referencia a la ruta 10.0 y cambiarla para que apunte a 11.0 en su lugar.
fuente
Necesita dos cosas para que funcione:
1) Instale Visual Studio Build Tools (no necesita todo Visual Studio, solo VS Build Tools) con la opción seleccionada "Herramientas de construcción de desarrollo web" en su servidor de compilación https://www.visualstudio.com/pl/thank -you-downloading-visual-studio /? sku = BuildTools & rel = 15
2) Asegúrese de que la ruta a Microsoft.Web.Publishing.Tasks.dll sea correcta
fuente
Para mí, comenzó a funcionar simplemente agregando una referencia al paquete NuGet MSBuild.Microsoft.VisualStudio.Web.targets v14.0.0.3
Incluso no es necesario agregar el elemento UsingTask al archivo del proyecto como lo menciona el autor del paquete
Y luego pude usar TransformXml y otras tareas, definidas en el paquete, por ejemplo, para transformar app.config
fuente
En caso de que alguien esté usando un csproj estilo SDK, puede lograrlo sin tener que instalar Visual Studio en el servidor de compilación.
Primero debe instalar el paquete nuget SlowCheetah en su proyecto. Una vez que lo instale, verá lo siguiente en su proyecto de estilo SDK.
Luego, asegúrese de agregar el atributo GeneratePathProperty = "true" (ver más abajo). Esto es muy importante para la siguiente parte porque lo ayudará a tomar la ruta de dónde se restaura el paquete nuget en su máquina. George Dangl lo explica en su artículo aquí .
Importe los objetivos de SlowCheetah a su proyecto:
Ahora puede usar un comando de destino (en este caso después de la publicación) para aplicar algunas transformaciones personalizadas. Si es necesario, siempre puede codificar los nombres de archivo a continuación en lugar de usar las variables en el siguiente ejemplo.
Si no ha usado SlowCheetah antes, le recomiendo que lo revise. Tienen una extensión de Visual Studio que le facilitará la vista previa de los archivos de transformación.
fuente