Soy nuevo en MSBuild y quería jugar un poco con él, pero no puedo entender por qué esto no funciona.¿Usa tareas personalizadas de MSBuild desde la misma solución?
Así que mi solución tiene dos proyectos: "Modelo" y "BuildTasks". BuildTasks acaba de una sola clase:
using Microsoft.Build.Utilities;
namespace BuildTasks
{
public class Test : Task
{
public override bool Execute()
{
Log.LogMessage("FASDfasdf");
return true;
}
}
}
Y luego en el Model.csproj He añadido esto:
<UsingTask TaskName="BuildTasks.Test" AssemblyFile="$(SolutionDir)src\BuildTasks\bin\BuildTasks.dll" />
<Target Name="AfterBuild">
<Test />
</Target>
He creado la orden de construcción de manera "BuildTasks" se construyó antes " Modelo". Pero cuando intento de construir Modelo consigo este error:
The "BuildTasks.Test" task could not be loaded from the assembly C:\WIP\TestSolution\src\BuildTasks\bin\BuildTasks.dll. Could not load file or assembly 'file:///C:\WIP\TestSolution\src\BuildTasks\bin\BuildTasks.dll' or one of its dependencies. The system cannot find the file specified. Confirm that the <UsingTask> declaration is correct, and that the assembly and all its dependencies are available.
definitivamente este archivo existe, ¿por qué no puedo MSBuild encontrarlo?
Incluso he intentado con la codificación rígida "C: \ WIP \ TestSolution" en lugar de "$ (SolutionDir)" y obtengo el mismo error. Sin embargo, si copio ese archivo .dll en mi escritorio y codigo la ruta a mi escritorio, FUNCIONA, lo que no puedo entender por qué.
EDIT: No tengo el camino equivocado. Modifiqué las compilaciones Debug/Release para BuildTasks para generar el .dll a la carpeta bin, ya que no quería que Debug/Release tuviera diferentes rutas.
¿Pudo resolver el problema? Tengo el mismo problema. – sean
3 años sin una resolución? Tengo este problema pero esta publicación no sirve de nada, ya que no está claro si el problema se resolvió alguna vez ... – DaveN59