protected override ICommand CreateCommand(params string[] args) { var newArgs = args.ToList(); newArgs.Insert(0, FullPathProjectFile); return(MSBuild.CreateCommandForTarget(Target, newArgs.ToArray())); }
public override CommandResult Execute(params string[] args) { var newArgs = args.ToList(); newArgs.Insert(0, FullPathProjectFile); var command = MSBuild.CreateCommandForTarget("publish", newArgs.ToArray()); return(command.Execute()); }
protected override ICommand CreateCommand(params string[] args) { var newArgs = new List <string>(); newArgs.Add(FullPathProjectFile); if (_sources.Any()) { newArgs.Add($"/p:RestoreSources={string.Join("%3B", _sources)}"); } newArgs.AddRange(args); return(MSBuild.CreateCommandForTarget("restore", newArgs.ToArray())); }
public override CommandResult Execute(params string[] args) { var newArgs = new List <string>(); newArgs.Add(FullPathProjectFile); if (_sources.Any()) { newArgs.Add($"/p:RestoreSources={string.Join("%3B", _sources)}"); } newArgs.AddRange(args); var command = MSBuild.CreateCommandForTarget("restore", newArgs.ToArray()); return(command.Execute()); }
public override CommandResult Execute(params string[] args) { var newArgs = new List <string>(args.Length + 2); newArgs.Add(FullPathProjectFile); newArgs.Add($"/p:ValueName={_valueName}"); newArgs.AddRange(args); // Override build target to write out DefineConstants value to a file in the output directory Directory.CreateDirectory(GetBaseIntermediateDirectory().FullName); string injectTargetPath = Path.Combine( GetBaseIntermediateDirectory().FullName, Path.GetFileName(ProjectFile) + ".WriteValuesToFile.g.targets"); string linesAttribute = _valueType == ValueType.Property ? $"Lines=`$({_valueName})`" : $"Lines=`@({_valueName})`"; string injectTargetContents = @"<Project ToolsVersion=`14.0` xmlns=`http://schemas.microsoft.com/developer/msbuild/2003`> <PropertyGroup> <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects> </PropertyGroup> <Target Name=`WriteValuesToFile` " + (ShouldCompile ? $"DependsOnTargets=`{DependsOnTargets}`" : "") + $@"> <WriteLinesToFile File=`bin\$(Configuration)\$(TargetFramework)\{_valueName}Values.txt` {linesAttribute} Overwrite=`true` Encoding=`Unicode` /> </Target> </Project>"; injectTargetContents = injectTargetContents.Replace('`', '"'); File.WriteAllText(injectTargetPath, injectTargetContents); var outputDirectory = GetOutputDirectory(_targetFramework); outputDirectory.Create(); var command = MSBuild.CreateCommandForTarget("WriteValuesToFile", newArgs.ToArray()); return(command.Execute()); }