Пример #1
0
        /// <summary>
        /// Runs the Wix Heat runner for the specified directory path.
        /// </summary>
        /// <param name="objectFiles">The object files.</param>
        /// <param name="outputFile">The output file.</param>
        /// <param name="harvestType">The WiX harvest type.</param>
        /// <param name="settings">The settings.</param>
        public void Run(IEnumerable <FilePath> objectFiles, FilePath outputFile, WiXHarvestType harvestType, HeatSettings settings)
        {
            if (objectFiles == null)
            {
                throw new ArgumentNullException(nameof(objectFiles));
            }

            if (outputFile == null)
            {
                throw new ArgumentNullException(nameof(outputFile));
            }

            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }

            var objectFilesArray = objectFiles as FilePath[] ?? objectFiles.ToArray();

            if (!objectFilesArray.Any())
            {
                throw new ArgumentException("No object files provided.", nameof(objectFiles));
            }

            Run(settings, GetArguments(objectFilesArray, outputFile, harvestType, settings));
        }
Пример #2
0
        private string GetHarvestType(WiXHarvestType harvestType)
        {
            switch (harvestType)
            {
            case WiXHarvestType.Dir:
                return("dir");

            case WiXHarvestType.File:
                return("file");

            case WiXHarvestType.Project:
                return("project");

            case WiXHarvestType.Reg:
                return("reg");

            case WiXHarvestType.Perf:
                return("perf");

            case WiXHarvestType.Website:
                return("website");

            default:
                return("dir");
            }
        }
Пример #3
0
 public HeatFixture()
     : base("heat.exe")
 {
     DirectoryPath = new DirectoryPath("./src/Cake");
     ObjectFile    = new FilePath("Cake.dll");
     OutputFile    = new FilePath("cake.wxs");
     Settings      = new HeatSettings();
     HarvestType   = WiXHarvestType.Dir;
     HarvestTarget = "Default Web Site";
 }
Пример #4
0
        /// <summary>
        /// Runs the Wix Heat runner for the specified directory path.
        /// </summary>
        /// <param name="objectFile">The object file.</param>
        /// <param name="outputFile">The output file.</param>
        /// <param name="harvestType">The WiX harvest type.</param>
        /// <param name="settings">The settings.</param>
        public void Run(FilePath objectFile, FilePath outputFile, WiXHarvestType harvestType, HeatSettings settings)
        {
            if (objectFile == null)
            {
                throw new ArgumentNullException(nameof(objectFile));
            }

            if (outputFile == null)
            {
                throw new ArgumentNullException(nameof(outputFile));
            }

            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }

            Run(settings, GetArguments(objectFile, outputFile, harvestType, settings));
        }
Пример #5
0
        /// <summary>
        /// Runs the Wix Heat runner for the specified directory path.
        /// </summary>
        /// <param name="directoryPath">The directory path.</param>
        /// <param name="outputFile">The output file.</param>
        /// <param name="harvestType">The WiX harvest type.</param>
        /// <param name="settings">The settings.</param>
        public void Run(DirectoryPath directoryPath, FilePath outputFile, WiXHarvestType harvestType, HeatSettings settings)
        {
            if (directoryPath == null)
            {
                throw new ArgumentNullException("directoryPath");
            }

            if (outputFile == null)
            {
                throw new ArgumentNullException("outputFile");
            }

            if (settings == null)
            {
                throw new ArgumentNullException("settings");
            }

            Run(settings, GetArguments(directoryPath, outputFile, harvestType, settings));
        }
Пример #6
0
        /// <summary>
        /// Runs the Wix Heat runner for the specified directory path.
        /// </summary>
        /// <param name="harvestTarget">The harvest target.</param>
        /// <param name="outputFile">The output file.</param>
        /// <param name="harvestType">The WiX harvest type.</param>
        /// <param name="settings">The settings.</param>
        public void Run(string harvestTarget, FilePath outputFile, WiXHarvestType harvestType, HeatSettings settings)
        {
            if (harvestTarget == null)
            {
                throw new ArgumentNullException("harvestTarget");
            }

            if (outputFile == null)
            {
                throw new ArgumentNullException("outputFile");
            }

            if (settings == null)
            {
                throw new ArgumentNullException("settings");
            }

            Run(settings, GetArguments(harvestTarget, outputFile, harvestType, settings));
        }
Пример #7
0
        public static void WiXHeat(this ICakeContext context, string harvestTarget, FilePath outputFile, WiXHarvestType harvestType, HeatSettings settings)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            var runner = new HeatRunner(context.FileSystem, context.Environment, context.ProcessRunner, context.Tools);

            runner.Run(harvestTarget, outputFile, harvestType, settings ?? new HeatSettings());
        }
Пример #8
0
        public static void WiXHeat(this ICakeContext context, DirectoryPath directoryPath, FilePath outputFile, WiXHarvestType harvestType)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            var runner = new HeatRunner(context.FileSystem, context.Environment, context.ProcessRunner, context.Tools);

            runner.Run(directoryPath, outputFile, harvestType, new HeatSettings());
        }
Пример #9
0
        private ProcessArgumentBuilder GetArguments(string harvestTarget, FilePath outputFile, WiXHarvestType harvestType, HeatSettings settings)
        {
            var builder = new ProcessArgumentBuilder();

            builder.Append(GetHarvestType(harvestType));

            builder.AppendQuoted(harvestTarget);

            var args = GetArguments(outputFile, settings);

            args.CopyTo(builder);

            return(builder);
        }
Пример #10
0
        private ProcessArgumentBuilder GetArguments(DirectoryPath directoryPath, FilePath outputFile, WiXHarvestType harvestType, HeatSettings settings)
        {
            var builder = new ProcessArgumentBuilder();

            builder.Append(GetHarvestType(harvestType));
            builder.AppendQuoted(directoryPath.MakeAbsolute(_environment).FullPath);

            var args = GetArguments(outputFile, settings);

            args.CopyTo(builder);

            return(builder);
        }
Пример #11
0
        private ProcessArgumentBuilder GetArguments(IEnumerable <FilePath> objectFiles, FilePath outputFile, WiXHarvestType harvestType, HeatSettings settings)
        {
            var builder = new ProcessArgumentBuilder();

            builder.Append(GetHarvestType(harvestType));

            // Object files
            foreach (var objectFile in objectFiles.Select(file => file.MakeAbsolute(_environment).FullPath))
            {
                builder.Append(objectFile);
            }

            var args = GetArguments(outputFile, settings);

            args.CopyTo(builder);

            return(builder);
        }
Пример #12
0
        public static void WiXHeat(this ICakeContext context, IEnumerable <FilePath> objectFiles, FilePath outputFile, WiXHarvestType harvestType, HeatSettings settings)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            var runner = new HeatRunner(context.FileSystem, context.Environment, context.ProcessRunner, context.Tools);

            runner.Run(objectFiles, outputFile, harvestType, settings ?? new HeatSettings());
        }