po tym, jak Microsoft oznaczył BuildEngine.Engine i BuildEngine.Project jako przestarzały, starałem się wykorzystać nową propozycję firmy Microsoft, jak można ją zobaczyć pod spodem. Ale nie mam pojęcia, gdzie mogę zintegrować xmlprojectfile. Czy jest tu ktoś, kto zna rozwiązanie tego problemu?Migracja Microsoft.Build.BuildEngine.Engine do Microsoft.Build.Evaluation.ProjectCollection
Plik projektu XML zawartość
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ProjectToBuild Include ="myproject.csproj" />
</ItemGroup>
<Target Name="Build">
<MSBuild Projects="@(ProjectToBuild)"
Properties="Configuration=Debug" StopOnFirstFailure="true" />
</Target>
</Project>
Stara wersja i działa (ale nieaktualny)
Microsoft.Build.BuildEngine.Engine engine = new Microsoft.Build.BuildEngine.Engine();
engine.DefaultToolsVersion = "4.0";
engine.RegisterLogger(new ConsoleLogger());
Microsoft.Build.BuildEngine.Project project = new Microsoft.Build.BuildEngine.Project(engine);
project.Load(xmlprojectfile);
if (!project.Build())
{
Console.ReadLine();
}
Nowy nie działa Verison
Microsoft.Build.Evaluation.ProjectCollection collection = new Microsoft.Build.Evaluation.ProjectCollection();
collection.DefaultToolsVersion = "4.0";
collection.RegisterLogger(new ConsoleLogger());
Microsoft.Build.Evaluation.Project project = new Microsoft.Build.Evaluation.Project(collection);
if (!project.Build())
{
Console.ReadLine();
}