Сборка в режиме выпуска из консольного приложения с использованием Microsoft.Build.Evaluation.Project - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь создать консольное приложение для построения (режим выпуска) существующего проекта.

Используя «Командную строку разработчика для VS 2017», я не смог получить ожидаемый результат, используя:

MsBuild.exe "[***].csproj" /t:Build /p:Configuration=Release /p:TargetFramework=v4.5

Пока у меня есть этот код:

class Program
{
    static void Main(string[] args)
    {
        Run(new FileInfo("[***].csproj"));
        Console.ReadLine();
    }

    public static bool Run(FileInfo msbuildFile, string[] targets = null, IDictionary<string, string> properties = null, LoggerVerbosity loggerVerbosity = LoggerVerbosity.Detailed)
    {
        if (!msbuildFile.Exists) throw new ArgumentException("msbuildFile does not exist");

        if (targets == null)
        {
            targets = new string[] { };
        }
        if (properties == null)
        {
            properties = new Dictionary<string, string>();
        }

        Console.Out.WriteLine("Running {0} targets: {1} properties: {2}, cwd: {3}",
                              msbuildFile.FullName,
                              string.Join(",", targets),
                              string.Join(",", properties),
                              Environment.CurrentDirectory);

        var project = new Project(msbuildFile.FullName, properties, "14.0");

        project.SetGlobalProperty("Configuration", "Release");
        project.SetGlobalProperty("TargetFramework", "v4.5");

        return project.Build(targets, new ILogger[] { new ConsoleLogger(loggerVerbosity) });
    }
}

по какой-то причине он не работает.Не могли бы вы сказать мне, почему?Ошибка выглядит следующим образом:

[...] \ BuildScripts \ ModulePackage.Targets (9,5): ошибка MSB4062: не удалось загрузить задачу «MSBuild.Community.Tasks.XmlRead» изсборка [...] \ BuildScripts. \ packages \ MSBuildTasks.1.5.0.235 \ tools \ MSBuild.Community.Tasks.dll.Не удалось загрузить файл или сборку 'file: /// [...] \ BuildScripts \ packages \ MSBuildTasks.1.5.0.235 \ tools \ MSBuild.Community.Tasks.dll' или одну из ее зависимостей.Система не может найти указанный файл.Убедитесь, что объявление правильное, что сборка и все ее зависимости доступны и что задача содержит открытый класс, реализующий Microsoft.Build.Framework.ITask.

...