Я пытаюсь создать консольное приложение для построения (режим выпуска) существующего проекта.
Используя «Командную строку разработчика для 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.