Example #1
0
        protected override ICommand CreateCommand(params string[] args)
        {
            var newArgs = args.ToList();

            newArgs.Insert(0, FullPathProjectFile);
            return(MSBuild.CreateCommandForTarget(Target, newArgs.ToArray()));
        }
Example #2
0
        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()));
        }
Example #4
0
        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());
        }
Example #5
0
        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());
        }